Java Web服务调用的HTTP基本身份验证
我试图调用一个具有基本HTTP身份验证的web服务。我使用AXIS的WSDL2JAVA工具生成了客户机代码 但是我无法设置webservice调用的用户名和密码 我尝试将它们作为一个端点url 但是我得到了这个未经授权的错误。我正试图找出一种方法,在Java代码中将此集合添加到我的调用中 注意:我能够通过soapUI调用相同的服务并获得结果。我在请求的“Aut”选项卡中提供了用户名和密码 这里是我的存根的一些代码片段,如果这对您有用的话Java Web服务调用的HTTP基本身份验证,java,axis2,basic-authentication,webservice-client,Java,Axis2,Basic Authentication,Webservice Client,我试图调用一个具有基本HTTP身份验证的web服务。我使用AXIS的WSDL2JAVA工具生成了客户机代码 但是我无法设置webservice调用的用户名和密码 我尝试将它们作为一个端点url 但是我得到了这个未经授权的错误。我正试图找出一种方法,在Java代码中将此集合添加到我的调用中 注意:我能够通过soapUI调用相同的服务并获得结果。我在请求的“Aut”选项卡中提供了用户名和密码 这里是我的存根的一些代码片段,如果这对您有用的话 _serviceClient = new
_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);
如有任何意见,我们将不胜感激 谢谢!这起作用了。通过_serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE,auth),我只找到了这个;有人知道为什么不能将凭据放入问题中所示的端点url吗?你可以用ApacheHttpClient来做,我猜Axis在幕后使用它。。。
HttpTransportProperties.Authenticator
auth = new HttpTransportProperties.Authenticator();
auth.setUsername("username");
auth.setPassword("password");
_serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATE,auth);