這裏我要記錄的是不生成.arr或者.jar文件,結合真實項目實現的webservice;java
其中項目做爲服務的提供方,建立一個web項目,作單元測試。web
1、服務端的建立spring
一、導入axis2相應的jar包apache
二、建立services.xml文件app
<serviceGroup> <service name="ModlCustService"> <!-- 經過ServiceObjectSupplier參數指SpringServletContextObjectSupplie類來得到Spring的ApplicationContext對象 --> <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter> <!-- SpringBeanName固定的不能改 modlCustServiceTarget是spring中註冊的實現類的id--> <parameter name="SpringBeanName">modlCustServiceTarget</parameter> </service> <!-- 配置消息接收器,Axis2會自動選擇 方法有返回值,所以,須要使用可處理輸入輸出的RPCMessageReceiver類, 而方法沒有返回值,所以,須要使用只能處理輸入的RPCInOnlyMessageReceiver類。 --> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> </serviceGroup>
三、在web.xml中進行配置框架
四、在applicationContext.xml文件中進行配置單元測試
2、客戶端的建立測試
一、這裏我使用的是wsdl2java.bat生成的代碼,配置環境變量(使用黑窗口在任何位置都能找到axis2下ben目錄中的這個程序):spa
新增 AXIS2_HOME F:\java\axis2-1.7.5\指針
在Path中添加 %AXIS2_HOME%\bin;
3、心路歷程
由於以前沒有接觸過axis2框架,因此在開發的過程當中,都是邊在網上找資料,邊作demo。進入過不少誤區。時間還耽誤了很多。好比:
在客戶端作單元測試的時候,發現客戶端報錯,當時一直不知道哪裏出了問題
org.apache.axis2.axisfault: exception occurred while trying to invoke service method createvm
後來才發現是沒有和spring整合,致使服務端報空指針問題(dao沒有注入)。