寫在前面: 現在有很多開發webservice的方法以及框架,什麼cxf等,但是這些在你編寫服務類的時候都要用到註解這個功能。如果現在的jdk是1.4的,那麼就不能使用註解這個功能了。所以這裡可以用到axis這個工具。 1.所需jar包: 2.一般webservice在工作中,都是用在web項目中, ...
寫在前面:
現在有很多開發webservice的方法以及框架,什麼cxf等,但是這些在你編寫服務類的時候都要用到註解這個功能。如果現在的jdk是1.4的,那麼就不能使用註解這個功能了。所以這裡可以用到axis這個工具。
1.所需jar包:
2.一般webservice在工作中,都是用在web項目中,所以創建web項目,將所需jar包放在lib目錄下
3.在web.xml文件中,添加
<servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <!-- 這裡是訪問服務的路徑 --> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
4.創建服務類,一個介面,一個實現類即可,首先是介面
package edu.hue.server; public interface SayHello { public String say(String name); }
然後是介面的實現類
package edu.hue.server; public class SayHelloImpl implements SayHello{ public String say(String name) { return "Hello my friend " + name; } }
5.下麵在WEB-INF下麵創建server-config.wsdd(這個文件直接創建,然後將下麵的代碼複製就可以了,然後根據需要添加自己的服務的配置,其實這個文件是可以自己生成的,需要自己創建一個deploy.wsdd,啟動項目運行之後,會自動生成server-config.wsdd。這裡為了方便,直接省略過程,只需要在server-config.wsdd上添加自己的服務就可以了,先學會用再說)
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 這裡的globalConfiguration暫時不用管是什麼意思,可以先註釋掉,不影響結果 <globalConfiguration> <parameter name="sendMultiRefs" value="true"/> <parameter name="disablePrettyXML" value="true"/> <parameter name="adminPassword" value="admin"/> <parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/> <parameter name="dotNetSoapEncFix" value="true"/> <parameter name="enableNamespacePrefixOptimization" value="false"/> <parameter name="sendXMLDeclaration" value="true"/> <parameter name="sendXsiTypes" value="true"/> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> <requestFlow> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="session"/> </handler> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="request"/> <parameter name="extension" value=".jwr"/> </handler> </requestFlow> </globalConfiguration> --> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <!-- 這裡的幾個服務也可以先註釋掉 這是自帶的服務 註釋後就只顯示自己的服務 <service name="AdminService" provider="java:MSG"> <parameter name="allowedMethods" value="AdminService"/> <parameter name="enableRemoteAdmin" value="false"/> <parameter name="className" value="org.apache.axis.utils.Admin"/> <namespace>http://xml.apache.org/axis/wsdd/</namespace> </service> <service name="Version" provider="java:RPC"> <parameter name="allowedMethods" value="getVersion"/> <parameter name="className" value="org.apache.axis.Version"/> </service> --> <transport name="http"> <requestFlow> <handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow> <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/> <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/> <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> </transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/> </responseFlow> </transport> <!-- 配置自己的服務 --> <service name="sayHello" provider="java:RPC"> <parameter name="className" value="edu.hue.server.SayHelloImpl" /> <parameter name="allowedMethods" value="*" /> </service> </deployment>
參數解釋:name:為服務起的一個名字這裡叫sayHello,然後下麵的value="這裡填的是你服務的實現類的全路徑",差不多就這兩個參數需要改動,其他的複製就可以了
6.運行項目,瀏覽器輸入:http://localhost:8080/test_axis3_stub/services,回車,就可以訪問了。
http://localhost:8080/test_axis3_stub(項目名)/services(服務的訪問路徑,在web.xml里就配置了攔截/services/*,故這裡只需要輸入services,就可以訪問)
這裡說的都是簡單的入門,如果涉及到複雜參數,如bean的傳遞,還需要下去研究。(貌似也需要在server-config.wsdd裡面配置服務的時候,進行相關的配置)