• axis2 webservice 调用的三种方式


    [java] view plaincopy
     
    1. package testClick.src.test;  
    2.   
    3. import javax.xml.namespace.QName;  
    4.   
    5. import org.apache.axiom.om.OMAbstractFactory;  
    6. import org.apache.axiom.om.OMElement;  
    7. import org.apache.axiom.om.OMFactory;  
    8. import org.apache.axiom.om.OMNamespace;  
    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.client.ServiceClient;  
    13. import org.apache.axis2.rpc.client.RPCServiceClient;  
    14. import org.junit.Test;  
    15.   
    16. import testClick.src.testclick.HelloWebService;  
    17. import testClick.src.testclick.HelloWebServicePortType;  
    18.   
    19. public class TestWebservice {  
    20.   
    21.     @Test  
    22.     public void Test(){  
    23.         //testClient();  
    24.         //testRPC();  
    25.         testOMElement();  
    26.     }  
    27.       
    28.     /** 
    29.      * 第一种 
    30.      * MyEclipse 生成客户端方式 
    31.      */  
    32.     public void testClient(){  
    33.         HelloWebService service = new HelloWebService();  
    34.         HelloWebServicePortType portType = service.getHelloWebServiceHttpSoap11Endpoint();  
    35.         String result = portType.sayHello("jack");  
    36.         System.out.println(result);  
    37.     }  
    38.       
    39.     /** 
    40.      *  第二种 
    41.      *  使用axis2 RPC调用webservice 需要导入相应的jar包 
    42.      */  
    43.     public void testRPC(){  
    44.         try{  
    45.             RPCServiceClient client = new RPCServiceClient();  
    46.             Options options = client.getOptions();  
    47.             String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";  
    48.             EndpointReference end = new EndpointReference(url);  
    49.             options.setTo(end);  
    50.               
    51.             Object[] obj = new Object[]{"tom"};  
    52.              Class<?>[] classes = new Class[] { String.class };    
    53.               
    54.             QName qname = new QName("http://testClick", "sayHello");    
    55.             String result = (String) client.invokeBlocking(qname, obj,classes)[0];  
    56.             System.out.println(result);  
    57.         }catch(AxisFault e){  
    58.             e.printStackTrace();  
    59.         }  
    60.     }  
    61.       
    62.     /** 
    63.      *  第三种 
    64.      * @throws AxisFault  
    65.      */  
    66.     public void testOMElement(){  
    67.         try{  
    68.             ServiceClient sc = new ServiceClient();  
    69.             Options opts = new Options();   
    70.             String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";  
    71.             EndpointReference end = new EndpointReference(url);  
    72.             opts.setTo(end);  
    73.             opts.setAction("sayHello");  
    74.             sc.setOptions(opts);  
    75.               
    76.             OMFactory fac = OMAbstractFactory.getOMFactory();    
    77.             OMNamespace omNs = fac.createOMNamespace("http://testClick", "");    
    78.             OMElement method = fac.createOMElement("sayHello",omNs);    
    79.             OMElement value = fac.createOMElement("name",omNs);  
    80.             value.setText("admin");  
    81.             method.addChild(value);   
    82.             OMElement res = sc.sendReceive(method);  
    83.             res.getFirstElement().getText();    
    84.             System.out.println(res.getFirstElement().getText());  
    85.         }catch(AxisFault e){  
    86.             e.printStackTrace();  
    87.         }  
    88.     }  
  • 相关阅读:
    数据结构之单链表的实现java
    从尾到头打印列表——牛客剑指offer
    Java重要类之LinkedList
    删除链表中重复的结点——牛客剑指offer
    二维数组中的查找——牛客剑指offer
    爬虫常见异常
    持续集成常见异常及排除方案
    VMware安装与基本使用
    web开发常见异常及处理
    Linux简单介绍与基本使用(微系统,)
  • 原文地址:https://www.cnblogs.com/adamas21/p/4890801.html
Copyright © 2020-2023  润新知