AXIS调用webService服务

来源:互联网 发布:java中最好的加密算法 编辑:程序博客网 时间:2024/05/19 00:55
package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.axis2.AxisFault;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.client.ServiceClient;import org.apache.axis2.rpc.client.RPCServiceClient;import org.junit.Test;import testClick.src.testclick.HelloWebService;import testClick.src.testclick.HelloWebServicePortType;public class TestWebservice {@Testpublic void Test(){//testClient();//testRPC();testOMElement();}/** * 第一种 * MyEclipse 生成客户端方式 */public void testClient(){HelloWebService service = new HelloWebService();HelloWebServicePortType portType = service.getHelloWebServiceHttpSoap11Endpoint();String result = portType.sayHello("jack");System.out.println(result);}/** * 第二种 *  使用axis2 RPC调用webservice 需要导入相应的jar包 */public void testRPC(){try{RPCServiceClient client = new RPCServiceClient();Options options = client.getOptions();String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";EndpointReference end = new EndpointReference(url);options.setTo(end);Object[] obj = new Object[]{"tom"}; Class<?>[] classes = new Class[] { String.class };  QName qname = new QName("http://testClick", "sayHello");  String result = (String) client.invokeBlocking(qname, obj,classes)[0];System.out.println(result);}catch(AxisFault e){e.printStackTrace();}}/** *  第三种 * @throws AxisFault  */public void testOMElement(){try{ServiceClient sc = new ServiceClient();Options opts = new Options(); String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";EndpointReference end = new EndpointReference(url);opts.setTo(end);opts.setAction("sayHello");sc.setOptions(opts);OMFactory fac = OMAbstractFactory.getOMFactory();  OMNamespace omNs = fac.createOMNamespace("http://testClick", "");  OMElement method = fac.createOMElement("sayHello",omNs);  OMElement value = fac.createOMElement("name",omNs);value.setText("admin");method.addChild(value); OMElement res = sc.sendReceive(method);res.getFirstElement().getText();          System.out.println(res.getFirstElement().getText());}catch(AxisFault e){e.printStackTrace();}}}


1 0
原创粉丝点击