这里我要记录的是不生成.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没有注入)。