最近在与其他系统联调,涉及到数据传输,沟通后,统一用WebService接口
WebService接口报文:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soapenv:Header/>
<soapenv:Body>
<paos:Query soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<map xsi:type="x-:Map" xmlns:x-="http://xml.apache.org/xml-soap">
<!--Zero or more repetitions:-->
<item xsi:type="x-:mapItem">
<key xsi:type="xsd:anyType">?</key>
<value xsi:type="xsd:anyType">?</value>
</item>
</map>
<paos:Query>
</soapenv:Body>
</soapenv:Envelope>
private Map callWebService(String requestUri,Map params,String rovokeName) {
Service service = new Service();// 创建一个服务(service)调用(call)
Map callRet= new HashMap();//返回串
try {
Call call = (Call)service.createCall();// 通过service创建call对象
call.setTargetEndpointAddress(new java.net.URL(requestUri));//设置service所在URL
call.setOperationName(rovokeName); //设置调用方法名
call.setReturnClass(Map.class);
call.addParameter("params", XMLType.SOAP_MAP, ParameterMode.IN);
log.debug("++++++++qryRegionName+start call+++++++++++");
callRet = (Map)call.invoke(new Object[]{params});
log.debug("++++++++qryRegionName+callRet+++++++++++"+callRet);
return callRet;
} catch (Exception e) {
e.printStackTrace();
}
return callRet;
}
上面是自己研究的调用方法,只需输入入参,地址,和方法名即可调用。