webservice:不同组织或者部门之间互通数据
https://www.cnblogs.com/buggou/p/8183738.html
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 }