我尝试调用具有基本HTTP身份验证的Web服务。我使用AXIS的WSDL2JAVA工具生成了客户端代码。
但我无法为webservice调用设置用户名和密码。
我尝试将它们作为
放在端点网址中但是我收到了未经授权的错误。我试图想出一种方法来将这个集合用于我的Java代码调用....
注意:我可以通过soapUI调用相同的服务并获得结果。我在请求的“自动”标签中提供了用户名和密码。
以下是我的Stub的一些代码片段(如果这对您有用)
_serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
_serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
targetEndpoint));
_serviceClient.getOptions().setUseSeparateListener(useSeparateListener);
//adding SOAP soap_headers
_serviceClient.addHeadersToEnvelope(env);
// set the message context with that soap envelope
_messageContext.setEnvelope(env);
// add the message contxt to the operation client
_operationClient.addMessageContext(_messageContext);
//execute the operation client
_operationClient.execute(true);
任何输入都将非常感谢!!
答案 0 :(得分:6)
HttpTransportProperties.Authenticator
auth = new HttpTransportProperties.Authenticator();
auth.setUsername("username");
auth.setPassword("password");
_serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATE,auth);