axis1.4呼叫WebService報找不到分派方法
阿新 • • 發佈:2019-02-15
解決方法
在設定OperationName時,要new一個QName設定namespace。
public String findUserInfoByName(String name) {
String result = null;
try {
String endpoint = "http://test.com/CrmInfo/CrmInfoPort?wsdl";
//直接引用遠端的wsdl檔案
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
/**
*注意這裡,要設定Namespace
*/
call.setOperationName(new QName("http://server.com/","findUserInfoByName"));//WSDL裡面描述的介面名稱
call.addParameter("arg0", XMLType.XSD_STRING,
ParameterMode.IN);//介面的引數
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設定返回型別
result = (String)call.invoke(new Object[]{name});
//給方法傳遞引數,並且呼叫方法
System.out.println("result is :"+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
return result;
}