集成步骤
1:web.xml 的修改,配置访问方式
<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>
2:services.xml 配置webservice发布方式
excludeOperations 参数说明
该参数可以屏蔽接口中,不需要暴露的方法。disableSOAP12,disableSOAP11参数说明
一般axis2 生成的webservice会有访问协议
1:http http形式的访问协议
2: soap1.1 soap1.1格式的soap访问方式
3:soap1.2 soap1.2格式的soap访问方式
1.1和1.2的访问方式的区别,请询问度娘,在此不多做解释
<serviceGroup>
<service name="XXX">// 访问的服务名
<description>wsTransfer</description> // 描述
<parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
<parameter name="SpringBeanName">XXXX</parameter> //application.xml配置的名称,具体的实现
<!-- <parameter name="disableSOAP12" locked="true">true</parameter>
<parameter name="disableSOAP11" locked="true">true</parameter> -->
<operation name="sendApprove">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
<operation name="recvApprove">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
<excludeOperations>
<operation>setTransferService</operation>
<operation>setLogService</operation>
</excludeOperations>
</service>
</serviceGroup>
3: 客户端访问
请在每次调用完成之后,执行cleanupTransport方法,否则,长时间访问webservice,会出现访问超时的现象。
// 使用RPC方式调用WebService
serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(url);
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(3000L);
options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,true);
// 指定method方法返回值的数据类型的Class对象
Class[] classes = new Class[] {String.class};
// 指定要调用的method方法及WSDL文件的命名空间
QName opAddEntry = new QName(qname, method);
// 调用method方法并输出该方法的返回值
String result = (String)serviceClient.invokeBlocking(opAddEntry, args, classes)[0];