http://www.javashuo.com/article/p-xgfekzxx-a.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 }