日期:2014-05-17 浏览次数:20744 次
/**
* 测试查询航班
*/
public static void testRPCs(){
//保存查询参数XML格式
StringBuffer xml = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<ParamsXml>");
xml.append("<Params>");
xml.append("<AgentID>GDDX</AgentID>");
xml.append("<DepartureAirport>CAN</DepartureAirport>");//三字码
xml.append("<ArriveAirport>PEK</ArriveAirport>");//三字码
xml.append("<DepartureDate>2014-01-18</DepartureDate>");//时间
xml.append("<CarrierCode></CarrierCode>");//航空公司二字码,可空
xml.append("<FS>D</FS>");//D:直达,N:中转
xml.append("</Params>");
xml.append("</ParamsXml>");
try {
// axis2 服务端
String url = "http://ws04.itour.cn:8084/ItourAgentCRSService.asmx?wsdl";
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(url);
Options options = serviceClient.getOptions();
//确定目标服务地址
options.setTo(targetEPR);
//确定调用方法
options.setAction("http://itour.cn/AV");
//指定要调用的sayHelloToPerson方法及WSDL文件的命名空间
QName qname = new QName("http://itour.cn/","AV");
// 指定AV方法的参数值
Object[] parameters = new Object[]{xml.toString()};
// 调用方法一 传递参数,调用服务,获取服务返回结果集
OMElement element = serviceClient.invokeBlocking(qname, parameters);
//值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。
//我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果
String result = element.getFirstElement().getText();
System.out.println(result);
} catch (AxisFault e) {
e.printStackTrace();
}
}
//main方法
public static void