Java 通过Web服务客户端以编程方式为WebSphere 5.x请求发送方绑定基本设置凭据

Java 通过Web服务客户端以编程方式为WebSphere 5.x请求发送方绑定基本设置凭据,java,web-services,websphere,Java,Web Services,Websphere,我有一个WebSphere5.xWSAD生成的Web服务客户机,它使用专用的登录绑定和BasicAuth身份验证方法。使用WSAD Web服务客户端编辑器工具,我可以设置所需的安全设置和凭据,然后将这些设置和凭据传播到ibm webservicesclient bnd/ext.xmi文件。在服务器上部署web应用程序后,它可以正常工作。我可以通过管理控制台访问Websphere上的这些凭据,方法是: Enterprise Applications > *MyApp* > Web Mo

我有一个WebSphere5.xWSAD生成的Web服务客户机,它使用专用的登录绑定和BasicAuth身份验证方法。使用WSAD Web服务客户端编辑器工具,我可以设置所需的安全设置和凭据,然后将这些设置和凭据传播到ibm webservicesclient bnd/ext.xmi文件。在服务器上部署web应用程序后,它可以正常工作。我可以通过管理控制台访问Websphere上的这些凭据,方法是:

Enterprise Applications > *MyApp* > Web Module > *MyModule* > Web Services: Client Security Bindings > Request Sender Binding > Login Binding 
但是,我需要从Java逻辑以编程方式设置这些凭据。以下电话似乎不够:

((javax.xml.rpc.Stub) service)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "user");
((javax.xml.rpc.Stub) service)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "password");
由于我得到以下回应:

WSEC5075E: No security token found which satisfies any one of AuthMethods.
是否可以在生成的客户端Java逻辑中设置所需的凭据

如果不是,可能可以通过以低级方式访问调用来实现,也可能是手动将所需的安全元素输入到SOAP消息头中


提前谢谢你

我通过生成Axis Web服务客户端并实现自己的org.apache.Axis.handlers.BasicHandler来修改调用,成功地解决了这个问题。该处理程序基于axis wsse库中的WsseClientHandler

所需的逻辑放置在存根文件中,如下所示:

    _call.setUsername("username");
    _call.setPassword("password");
    _call.setProperty(WsseClientHandler.PASSWORD_OPTION,
            WsseClientHandler.PASSWORD_CLEARTEXT);
    _call.setClientHandlers(new WsseClientHandler(), null);