zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    hadoop 2.6.0 LightWeightGSet源码分析
    推断扫描后的内容是否是URL
    Merge Sorted Array
    带条件的分页【重点】
    第8章2节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-解析处理命令行參数
    php持续集成环境笔记
    hdu5137 How Many Maos Does the Guanxi Worth(单源最短路径)
    求最长公共子序列
    集团公司(嵌入ETL工具)財务报表系统解决方式
    ADT+NDK搭建jni编译环境
  • 原文地址:https://www.cnblogs.com/rb2010/p/8183738.html
Copyright © 2011-2022 走看看