這里我要記錄的是不生成.arr或者.jar文件,結合真實項目實現的webservice;
其中項目作為服務的提供方,創建一個web項目,做單元測試。
一、服務端的創建
1、導入axis2相應的jar包
2、創建services.xml文件

<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>
3、在web.xml中進行配置
4、在applicationContext.xml文件中進行配置
二、客戶端的創建
1、這里我使用的是wsdl2java.bat生成的代碼,配置環境變量(使用黑窗口在任何位置都能找到axis2下ben目錄中的這個程序):
新增 AXIS2_HOME F:\java\axis2-1.7.5\
在Path中添加 %AXIS2_HOME%\bin;
三、心路歷程
因為之前沒有接觸過axis2框架,所以在開發的過程中,都是邊在網上找資料,邊做demo。進入過很多誤區。時間還耽誤了不少。比如:
在客戶端做單元測試的時候,發現客戶端報錯,當時一直不知道哪里出了問題
org.apache.axis2.axisfault: exception occurred while trying to invoke service method createvm
后來才發現是沒有和spring整合,導致服務端報空指針問題(dao沒有注入)。
