Axis2(1.6.1)客户端Web服务Basic Auth

时间:2012-01-16 14:08:45

标签: java axis2 basic-authentication

我正在尝试在JBoss 5.1.0 GA中实现客户端Web服务(AXIS 2 1.6.1)。

我生成了存根,第一次调用(到mockService)工作正常。

现在我想调用我的Web服务(没有mockService),我需要实现基本身份验证。

我已经实现了基本的身份验证代码,我几乎可以肯定代码中没有错误。

HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator();
basicAuth.setUsername("userName");
basicAuth.setPassword("password");
basicAuth.setPreemptiveAuthentication(true);

stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, basicAuth);

因为我可以使用SOAP UI进行调用,所以我坚信我的问题是我没有设置我的 “WWS-Password Type”和“WWS TimeToLive”(当我在SOAP-UI上禁用这些属性时,我有相同的错误消息)。

我认为我可能需要在服务器中放置一个axis2.xml来放置这些属性,但是...... 我什么时候把我的配置文件(在JBoss中)?或者我在哪里定义此文件的路径? 或者还有其他什么?

谢谢大家。

注意:我尝试了这个解决方案: Adding User/Password to SOAPHeader for WebService client call with AXIS2

我的错误是:

Exception in thread "main" org.apache.axis2.AxisFault: Internal Error (from server)
    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 myPackage.process(MyStub.java:187)

P.S-请注意,服务器Web服务通过https进行通信。

P.S.2 - Tks Edward

1 个答案:

答案 0 :(得分:0)

仅供记录,我已使用Adding User/Password to SOAPHeader for WebService client call with AXIS2中的解决方案解决了问题。

我有一个拼写错误的标签(在这种情况下是用户标签)。

非常感谢。