WebService(axis2),整合springmvc

摘要:
/豆>&书信电报;3<4<描述>示例<parametername=“ServiceObjectSupplier”>parametername=“SpringBeanName”>15<messageReceivermep=“http;

 1.导入jar

WebService(axis2),整合springmvc第1张

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文件,这两个文件就是要对外暴露的接口方法

WebService(axis2),整合springmvc第2张WebService(axis2),整合springmvc第3张
 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
WebService(axis2),整合springmvc第4张WebService(axis2),整合springmvc第5张
 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”这个自定义

WebService(axis2),整合springmvc第6张WebService(axis2),整合springmvc第7张
 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.创建调用方法

WebService(axis2),整合springmvc第8张WebService(axis2),整合springmvc第9张
  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

免责声明:文章转载自《WebService(axis2),整合springmvc》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Communication between C++ and Javascript in Qt WebEngine(转载)OGRE GLRenderSystem下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

原创-PromQL语法

匹配标签值时可以是等于,也可以使用正则表达式。总共有下面几种匹配操作符: =:完全相等 !=: 不相等 =~: 正则表达式匹配 !~: 正则表达式不匹配 Prometheus的4种数据类型如下。·瞬时向量(Instant vector):一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中最新的一...

JS-获取URL请求参数

前言:原来做过一个项目,需要实现一个页面打印的功能,由于项目中使用了AngularJS+Bootstrap等前端框架,需要打印的页面又在弹出框中,使用了Bootstrap的模态框后发现打印的效果不太好,后来就使用原生的方式弹出一个新的窗口,不过新的窗口中的某些数据又需要从前一个页面中获取,使用AngularJS框架后发现从后台返回的页面总是被封装成一个对象...

Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

前两篇不错 Spring.profile实现开发、测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/7091021.html 详解Spring中的Profile - 简书https://www.jianshu.com/p/948c303b2253 spring-mvc-...

angularJS 调用摄像头扫描二维码,输出结果

背景:在一个angularJS的项目中,需要添加点击某个按钮之后调用手机的照相机,扫描二维码输出所扫描二维码的结果,利用这个结果来处理其他的事情。 效果如下 扫描玩二维码把结果alert出来如下图 扫描二维码   1.在本地需要安装下面的包文件 在现有的angularJS项目中,执行下面的命令 npm install npm i @zxing/bro...

真正掌握vuex的使用方法(三)

接下来咱们继续使用vuex来完成上篇文章的投票实例。大家一定要记住,学习编程这种事一定要慢慢来才会快!所以一定要将代码多敲几遍哦! 目前当前的票数已经可以在页面中渲染出来了!接下来要做的事就是让按钮起到应有的责任:点击对应的按钮让数字加1, 总票数也要加1。很简单,只要给按钮增加一个事件,直接改变其状态即可,代码如下: <div id="app"...

Android开发之Instrumentation(自动化测试)

Android在JUnit的之外给我们又提供了Instrumentation测试框架。通过Instrumentation可以模拟按键按下、抬起、屏幕点击、滚动等事件,有效地控制Activity进行自动化测试。 Instrumentation是执行application instrumentation代码的基类。当应用程序运行的时候instrumentati...