从这里http://nrg19840409.iteye.com/blog/1018573看的axis1.4调用WebService的方法,里面说的第一种方法,调用的时候会出现找不到分派方法异常
解决方法
在设置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;
}