由于项目中要调用其他公司的接口,研究了下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, ); // 这里设置对应参数名称
30 call.addParameter(new QName("http://tempuri.org/", "Flrs"), XMLType.XSD_STRING, ); // 这里设置对应参数名称
31 call.addParameter(new QName("http://tempuri.org/", "Types"), XMLType.XSD_STRING, ); // 这里设置对应参数名称
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包一定要正确


使用axis调用WebService服务端_webService