这里我要记录的是不生成.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:javaaxis2-1.7.5
在Path中添加 %AXIS2_HOME%in;
三、心路历程
因为之前没有接触过axis2框架,所以在开发的过程中,都是边在网上找资料,边做demo。进入过很多误区。时间还耽误了不少。比如:
在客户端做单元测试的时候,发现客户端报错,当时一直不知道哪里出了问题
org.apache.axis2.axisfault: exception occurred while trying to invoke service method createvm
后来才发现是没有和spring整合,导致服务端报空指针问题(dao没有注入)。