我正在尝试在JBoss 5.1.0 GA中实现客户端Web服务(AXIS 2 1.6.1)。
我已经生成了存根,并且第一次调用(对模拟服务)效果很好。
现在,我想调用我的Web服务(不带模拟服务),并且需要增加基本身份验证。
我已经实现了基本的身份验证代码,并且几乎可以确定代码中没有bug。
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中)? 或在哪里定义此文件的路径? 还是还有别的?
谢谢大家
注意:我未成功尝试此解决方案: 使用AXIS2将用户/密码添加到SOAPHeader中以进行WebService客户端调用
我的错误是:
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)
PS-请注意,服务器Web服务通过https进行通信。
PS2-特克斯爱德华