使用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 下载。