代码如下:
public static Object[] invoke(String method,Object[] params,Class[] classes) throws AxisFault{
//使用RPC方式调用WebService
RPCServiceClient client=new RPCServiceClient();
Options option=client.getOptions();
//指定调用的URL
EndpointReference reference=new EndpointReference(targetEPRUrl);
option.setTo(reference);
option.setAction("http://tempuri.org/"+method);
//设置2秒超时
option.setTimeOutInMilliSeconds(2000L);
// 指定要调用的方法及WSDL文件的命名空间
//QName opAddEntry = new QName(qNameUrl, method);
QName opAddEntry = new QName("http://tempuri.org/", method);
System.out.println(client.invokeBlocking(opAddEntry,params,classes)[0]);
//调用远程方法,并指定方法参数以及返回值类型
Object[] result=client.invokeBlocking(opAddEntry,params,classes);
return result;
}
错误如下:
Exception in thread "main" org.apache.axis2.AxisFault: 服务器无法处理请求。 ---> 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at com.getpoint.service.ApiWebService.invoke(ApiWebService.java:36)
at com.getpoint.service.ApiWebServiceMethods.getRealValue(ApiWebServiceMethods.java:42)
at com.getpoint.service.ApiWebServiceMethods.main(ApiWebServiceMethods.java:26)