加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

axis2 webservice 调用的三种方式 .

发布时间:2020-12-16 22:47:21 所属栏目:安全 来源:网络整理
导读: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.axi
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 {

	@Test
	public 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();
		}
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读