SpringMVC 集成 AXIS2

集成步骤

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];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值