org.apache.axis2.client.OperationClient异常提示"Transport error: 502 Error: notresol
现有一web服务器提供的wsdl文件,使用axis2-1.6.2将其转换为java文件ECLoginStub.java后使用。
web服务器提供一个login接口,可以用其登陆服务器。
使用NetBeans建立一个web server工程,对页面按钮操作的一个onclick事件响应,调用ECLoginStub.java中的login接口,入参为有效的用户名和密码,登陆失败。跟踪发现执行_operationClient.execute(true)时出错,异常为:org.apache.axis2.AxisFault: Transport error: 502 Error: notresolvable。
但创建一个Java应用工程,main函数中同样调用LoginStub.java中的login接口,登陆成功,获得正确的session Id。
登陆代码封装如下:
public String doLogin() throws AxisFault, RemoteException
{
ECLoginStub loginService = new ECLoginStub();
ECLoginStub.User user = new ECLoginStub.User();
user.setUserId("user");
user.setPassword("passwd");
ECLoginStub.LoginInput input = new ECLoginStub.LoginInput();
input.setUser(user);
ECLoginStub.LoginRequest request = new ECLoginStub.LoginRequest();
request.setInput(input);
ECLoginStub.Login logPara = new ECLoginStub.Login();
logPara.setRequest(request);
ECLoginStub.LoginResponse0 response = new ECLoginStub.LoginResponse0();
response = loginService.login(logPara);
String sessionId = response.getLoginResult().getOutput().getSessionId();
return sessionId;
}
类ECLoginStub继承关系:
public class ECLoginStub extends org.apache.axis2.client.Stub
类ECLoginStub中有个成员:
_serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
登陆的执行者是_operationClient定义:
org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());