首页 > 学院 > 开发设计 > 正文

SpringMVC 集成 AXIS2

2019-11-06 09:12:43
字体:
来源:转载
供稿:网友

集成步骤

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];
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表