1. 程式人生 > >java中webservice生成/呼叫方式小結

java中webservice生成/呼叫方式小結

一、通過axis2方式釋出 1、用POJO形式釋出(無需配置) (1)將axis2.war防置tomcat的webapps中,啟動伺服器 (2)將沒有package包(pojo類不能放置在任何包中)的class檔案放置到放置在C:\apache-tomcat-8.5.20\webapps\axis2\WEB-INF\pojo (3)重新啟動tomcat (4)開啟 http://localhost:8080/axis2/services/Hello?wsdl http://localhost:8080/axis2/services/listServices
即可開啟檢視。 2、通過配置services.xml然後打包成aar檔案進行釋出 (1)建立需要提供服務的類class檔案 (2)編寫services.xml檔案 (3)根據class檔案的package路徑配置如下 D:\ws\ com\sinosoft\webservice\HelloServiceNew.class D:\ws\META-INF\services.xml (4)然後在ws目錄下進行打包操作, jar cvf ws.aar . (5)將生成好的aar檔案放在
<Tomcat安裝目錄>\webapps\axis2\WEB-INF\services目錄中,完成。 其中配置檔案格式如圖
沒有返回值時:<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> 有返回值時: <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 3、通過匯入axis2相關包,在自定義web工程中釋出webservice
(1)準備好相關服務類 (2)配置web.xml檔案,加入axis2的servlet配置: <!--Axis2 config start--> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> (3)將原始axis2的工程下的 modules、service、lib和conf資料夾拷至自定義工程下的WEB-INF目錄下 (4)然後在services下新建{servicename}(自定義也可以)/META-INF路徑,META-INF下新建services.xml:
(5)啟動服務,訪問http://127.0.0.1:8080/webServe/services/{services.xml中parameter的name}?wsdl即可 4、通過javax.jws.*相關包的註解方式釋出webservice服務 (1)在沒有axis2jar包的普通java工程或web工程下( 可以使用監聽器或者Servlet來發布WebService),新建普通類 (2)[email protected]註解類,提供服務的方法不能為static、final (3)如圖方法,釋出後訪問,即可 http://localhost:9001/hello?wsdl
(4)暫時不提供入參,待 完善
二、通過Apache CSXF方式釋出 1、main方式 2、基於Spring釋出到容器 3、不基於Spring釋出到容器

三、客戶端的編寫與呼叫 1、Java通過RPC遠端呼叫方式訪問WebService的服務端
2、應用document方式呼叫
3、用wsdl2java簡化客戶端的編寫 (1)在axis2官網下載 axis2-x.x.x-bin.zip,找到bin裡面就可以找到wsdl2java.bat (2)通過cmd到bin目錄下執行命令 wsdl2java -uri http://localhost:8080/axis2/services/SimpleService?wsdl -p com.peide.webservice.axis2 -s -o stub -uri 後面執行的是 需要訪問的wsdl, -p 是檔案生成的包名 -o stub生成的檔案目錄,是bin目錄下面的 (3)將bin下面的檔案複製到-p的包下 (4)通過如圖方式進行呼叫
4、用wsimport生成客戶端程式碼 (1)確認C:\Program Files\Java\jdk1.8.0_144\bin下的wsimport.exe (2)執行 wsimport -keep  http://localhost:9001/hello?wsdl ,完成無錯,重新整理str目錄 (3)關注Hello.java和HelloService.java (4)如圖,直接呼叫(呼叫很簡單)


PS.部分內容不完善,待補充。