由于项目中要调用其他公司的接口,研究了下axis调用webService这种方式,现将代码贴出,以备以后查阅:
package com.xbq; import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType; /**
* @ClassName: TestWSClient
* @Description: TODO 使用axis调用 webservice
* @author: xbq
* @date: 2016-11-30 下午5:55:37
*/
public class TestWSClient { public static void main(String[] args) {
String url = "http://127.0.0.1:5031/XRHotel_ws?wsdl" ;
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setUseSOAPAction(true);
call.setReturnType(XMLType.XSD_STRING);//设置返回参数 也可以 是这个 new QName("http://www.w3.org/2001/XMLSchema", "string")
call.setOperationName(new QName("http://tempuri.org/", "Roomview"));//设置函数名
call.setSOAPActionURI("http://tempuri.org/Roomview");//设置URI call.addParameter(new QName("http://tempuri.org/", "Halls"), XMLType.XSD_STRING, ParameterMode.IN); // 这里设置对应参数名称
call.addParameter(new QName("http://tempuri.org/", "Flrs"), XMLType.XSD_STRING, ParameterMode.IN); // 这里设置对应参数名称
call.addParameter(new QName("http://tempuri.org/", "Types"), XMLType.XSD_STRING, ParameterMode.IN); // 这里设置对应参数名称 String xml = (String) call.invoke(new Object[] {"A", "21" , "CMT"}); //调用并带上参数数据 System.out.println(xml);
} catch(Exception e) {
e.printStackTrace();
}
}
}
注:jar包一定要正确。。
完整项目代码可到 http://download.csdn.net/detail/u010821757/9698219 下载。