webService接口调用的通用方法
webService接口调用的通用方法
webService接口调用的通用方法,一定要注意使用的URL中‘/’ 一定不能多,也一定不能少,否则会出现问题
具体方法如下
/**调用webService通用方法
* @param paramNames 对应参数名称列表
* @param paramsValues 对应参数值列表
* @param ip 指定webService接口IP
* @param method 调用的方法
* @return 结果
*/
public static String invokeRemoteFunc_cs(List<String> paramNames,List<String> paramsValues,String ip,
String method){
String endpoint=ip+":8015/Services/burnwebservice.asmx?wsdl";
String targetNamespace="http://www.lanxumxx.com/Burn";
String soapAction=targetNamespace+"/"+method;
String result=soapAction+"--error";
try {
Service service = new Service();
Call call = (Call) service.createCall();// 通过service创建call对象
// 设置service所在URL GetMachineState
call.setTargetEndpointAddress(new URL(endpoint));
QName qName = new QName(targetNamespace,method);
call.setOperationName(qName);
if (paramNames != null) {
for (int i = 0; i < paramNames.size(); i++) {
call.addParameter(new QName(targetNamespace,paramNames.get(0)), XMLType.XSD_STRING, ParameterMode.IN);
}
}
// call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);
call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS);
call.setEncodingStyle("UTF-8");
call.setReturnType(XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapAction);
call.setEncodingStyle( null );
Object obj=null;
if(paramsValues!=null&¶msValues.size()>0) {
obj = call.invoke(paramsValues.toArray());
} else {
obj = call.invoke(new Object[] {});
}
result=(String)obj;
// //{"State":0,"Msg":null}0:空闲、1使用中、2机器错误
// return result;
} catch (Exception e) {
// e.printStackTrace();
logger.error(targetNamespace+method+","+result);
}finally{
return result;
}
}