WebService(axis2),整合springmvc

 1.导入jar

 

2.在spring.xml中添加

  <!-- axis2start -->
  <bean id="testWSService" class="com.sh.test.WsTestServer"></bean>  
  <bean id="testWSService1" class="com.sh.test.WsTestServer1"></bean>  
  <!-- axis2end -->

3.创建Java文件,这两个文件就是要对外暴露的接口方法

 1 package com.sh.test;
 2 
 3 /**
 4  * webservice服务端
 5  * @author Administrator
 6  *
 7  */
 8 public class WsTestServer {
 9     
10     /** 
11     * WS服务器返回数据 一个加法操作
12     */  
13    public Integer jiafa(Integer d1, Integer d2) {  
14        return d1+d2;  
15    }  
16    /** 
17     * WS服务器返回数据 一个减法操作
18     */  
19    public Integer jianfa(Integer d1, Integer d2) {  
20        return d1-d2;  
21    }  
22 
23 }
WsTestServer
 1 package com.sh.test;
 2 
 3 /**
 4  * webservice服务端
 5  * @author Administrator
 6  *
 7  */
 8 public class WsTestServer1 {
 9     
10     /** 
11     * WS服务器返回数据 一个乘法操作
12     */  
13    public Integer chengfa(Integer d1, Integer d2) {  
14        return d1*d2;  
15    }  
16 
17 }
WsTestServer1

4.在web.xml中添加

    
    <!--axis2  WebService配置信息开始-->  
     <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>  
    <!-- axis2  WebService配置信息结束-->  

5.在WEB-INF下创建以下文件夹和文件 services/MyService/META-INF/services.xml   “MyService”这个自定义

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2 <serviceGroup> <!-- 多个类发布 -->
 3     <!-- 访问地址中的访问那个webservice的名字 -->  
 4     <service name="TestWSService">  
 5         <description>例子 </description>  
 6         <parameter name="ServiceObjectSupplier">  
 7             org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier  
 8         </parameter>  
 9         <!-- 配置在applicationContext中配置的bean,,这里的值域bean中的id事一样的,否则就报错找不到bean错 -->  
10       
11         <parameter name="SpringBeanName">testWSService</parameter>  
12         <messageReceivers>  
13             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
14                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
15             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
16                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
17         </messageReceivers>  
18     </service>  
19     <!-- 访问地址中的访问那个webservice的名字 -->  
20     <service name="TestWSService1">  
21         <description>例子1 </description>  
22         <parameter name="ServiceObjectSupplier">  
23             org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier  
24         </parameter>  
25         <!-- 配置在applicationContext中配置的bean,,这里的值域bean中的id事一样的,否则就报错找不到bean错 -->  
26       
27         <parameter name="SpringBeanName">testWSService1</parameter>  
28         <messageReceivers>  
29             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
30                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
31             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
32                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
33         </messageReceivers>  
34     </service>  
35 </serviceGroup>
View Code

 6.创建调用方法

  1 package com.sh.test;
  2 
  3 
  4 import javax.servlet.http.HttpServletRequest;
  5 import javax.servlet.http.HttpServletResponse;
  6 import javax.xml.namespace.QName;
  7 
  8 import org.apache.axiom.om.OMElement;  
  9 import org.apache.axis2.AxisFault;  
 10 import org.apache.axis2.addressing.EndpointReference;  
 11 import org.apache.axis2.client.Options;  
 12 import org.apache.axis2.rpc.client.RPCServiceClient; 
 13 import org.springframework.stereotype.Controller;
 14 import org.springframework.web.bind.annotation.RequestMapping;
 15 import org.springframework.web.bind.annotation.RequestMethod;
 16 
 17 /**
 18  * WebSerivce 客户端
 19  * @author Administrator
 20  *
 21  */
 22 @Controller
 23 public class WsClient {
 24     
 25     @RequestMapping(value="/wsclient",method=RequestMethod.GET)
 26     public  void Wstest(HttpServletRequest request, HttpServletResponse response){
 27         String url = "http://192.168.1.168:8080/axis2demo/services/TestWSService?wsdl";//TestWSService这个就是services.xml中第三行的
 28         try {  
 29             // 使用RPC方式调用WebService  
 30             RPCServiceClient serviceClient = new RPCServiceClient();  
 31             // 指定调用WebService的URL  
 32             EndpointReference targetEPR = new EndpointReference(url);  
 33             Options options = serviceClient.getOptions();  
 34             // 确定目标服务地址  
 35             options.setTo(targetEPR);  
 36             // 确定调用方法  
 37             options.setAction("urn:jiafa");  
 38             options.setTimeOutInMilliSeconds(60000L);//超时时间  毫秒
 39             //第一个参数:包名倒过来,第二个参数:调用的方法
 40             QName qname = new QName("http://test.sh.com","jiafa");  
 41             // 指定jiafa方法的参数值  
 42             Object[] parameters = new Object[] {9,9};  
 43             // 调用方法一 传递参数,调用服务,获取服务返回结果集  
 44             OMElement element = serviceClient.invokeBlocking(qname, parameters);  
 45             // 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。  
 46             String result = element.getFirstElement().getText();  
 47             System.out.println(result);  
 48         } catch (AxisFault e) {  
 49             e.printStackTrace();  
 50         }  
 51     }
 52     @RequestMapping(value="/wsclientjianfa",method=RequestMethod.GET)
 53     public  void Wstest1(HttpServletRequest request, HttpServletResponse response){
 54         String url = "http://192.168.1.168/axis2demo/services/TestWSService?wsdl";//TestWSService这个就是services.xml中第三行的
 55         try {  
 56             // 使用RPC方式调用WebService  
 57             RPCServiceClient serviceClient = new RPCServiceClient();  
 58             // 指定调用WebService的URL  
 59             EndpointReference targetEPR = new EndpointReference(url);  
 60             Options options = serviceClient.getOptions();  
 61             // 确定目标服务地址  
 62             options.setTo(targetEPR);  
 63             // 确定调用方法  
 64             options.setAction("urn:jianfa");  
 65             options.setTimeOutInMilliSeconds(60000L);//超时时间  毫秒
 66             //第一个参数:包名倒过来,第二个参数:调用的方法
 67             QName qname = new QName("http://test.sh.com","jianfa");  
 68             // 指定jiafa方法的参数值  
 69             Object[] parameters = new Object[] {9,9};  
 70             // 调用方法一 传递参数,调用服务,获取服务返回结果集  
 71             OMElement element = serviceClient.invokeBlocking(qname, parameters);  
 72             // 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。  
 73             String result = element.getFirstElement().getText();  
 74             System.out.println(result);  
 75         } catch (AxisFault e) {  
 76             e.printStackTrace();  
 77         }  
 78     }
 79     @RequestMapping(value="/wsclientchengfa",method=RequestMethod.GET)
 80     public  void Wstest2(HttpServletRequest request, HttpServletResponse response){
 81         String url = "http://192.168.1.168/axis2demo/services/TestWSService1?wsdl";//TestWSService这个就是services.xml中第三行的
 82         try {  
 83             // 使用RPC方式调用WebService  
 84             RPCServiceClient serviceClient = new RPCServiceClient();  
 85             // 指定调用WebService的URL  
 86             EndpointReference targetEPR = new EndpointReference(url);  
 87             Options options = serviceClient.getOptions();  
 88             // 确定目标服务地址  
 89             options.setTo(targetEPR);  
 90             // 确定调用方法  
 91             options.setAction("urn:chengfa");  
 92             options.setTimeOutInMilliSeconds(60000L);//超时时间  毫秒
 93             //第一个参数:包名倒过来,第二个参数:调用的方法
 94             QName qname = new QName("http://test.sh.com","chengfa");  
 95             // 指定jiafa方法的参数值  
 96             Object[] parameters = new Object[] {9,9};  
 97             // 调用方法一 传递参数,调用服务,获取服务返回结果集  
 98             OMElement element = serviceClient.invokeBlocking(qname, parameters);  
 99             // 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。  
100             String result = element.getFirstElement().getText();  
101             System.out.println(result);  
102         } catch (AxisFault e) {  
103             e.printStackTrace();  
104         }  
105     }
106 
107     
108 
109 }
View Code

 

转载于:https://www.cnblogs.com/buggou/p/8183738.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值