使用axis调用WebService服务端

由于项目中要调用其他公司的接口,研究了下axis调用webService这种方式,现将代码贴出,以备以后查阅:

 1 package com.xbq;
 2 
 3 import javax.xml.namespace.QName;
 4 import javax.xml.rpc.ParameterMode;
 5 
 6 import org.apache.axis.client.Call;
 7 import org.apache.axis.client.Service;
 8 import org.apache.axis.encoding.XMLType;
 9 
10 /**
11  * @ClassName: TestWSClient
12  * @Description: TODO 使用axis调用 webservice
13  * @author: xbq
14  * @date: 2016-11-30 下午5:55:37
15  */
16 public class TestWSClient {
17 
18     public static void main(String[] args) {
19         String url = "http://127.0.0.1:5031/XRHotel_ws?wsdl" ;
20         Service service = new Service();
21         try {
22             Call call = (Call) service.createCall();  
23             call.setTargetEndpointAddress(url);  
24             call.setUseSOAPAction(true);  
25             call.setReturnType(XMLType.XSD_STRING);//设置返回参数         也可以 是这个    new QName("http://www.w3.org/2001/XMLSchema",  "string") 
26             call.setOperationName(new QName("http://tempuri.org/", "Roomview"));//设置函数名  
27             call.setSOAPActionURI("http://tempuri.org/Roomview");//设置URI
28             
29             call.addParameter(new QName("http://tempuri.org/", "Halls"), XMLType.XSD_STRING, ParameterMode.IN);  // 这里设置对应参数名称  
30             call.addParameter(new QName("http://tempuri.org/", "Flrs"), XMLType.XSD_STRING, ParameterMode.IN);  // 这里设置对应参数名称  
31             call.addParameter(new QName("http://tempuri.org/", "Types"), XMLType.XSD_STRING, ParameterMode.IN);  // 这里设置对应参数名称  
32             
33             String xml = (String) call.invoke(new Object[] {"A", "21" ,  "CMT"});  //调用并带上参数数据
34             
35             System.out.println(xml); 
36         } catch(Exception e) {
37             e.printStackTrace();
38         }
39     }
40 }

注:jar包一定要正确。

完整项目代码可到 http://download.csdn.net/detail/u010821757/9698219 下载。

 

posted @ 2016-11-30 17:59  小葱拌豆腐~  阅读(726)  评论(0编辑  收藏  举报