我在使用 Websphere7 和 RSA 7.5 中的注释来实现 JAX-WS 服务时遇到问题。请查看此链接,解释我遇到的确切问题:
Exception java.util.zip.ZipFile.ensureOpenOrZipException with WAS 7
由于我需要 webservices.xml 文件,因此无法将应用程序模块从 2.5 更改为 2.4,因此我需要找到某种方法来实现 SOAPHandler 而不使用注释。
请告诉我这是否可行。
问候,
最佳答案
我找到了this page (它适用于 FileNet,但我认为示例代码可以在其他地方使用)使用以下代码片段:
ProcessEngineServiceProxy pewsServiceProxy = new ProcessEngineServiceProxy();
pewsServiceProxy._getDescriptor().setEndpoint(url);
// install the handler chain
BindingProvider bp = (BindingProvider) pewsServiceProxy._getDescriptor().getProxy();
Binding pewsBinding = bp.getBinding();
List<Handler> handlerChain = new java.util.ArrayList<Handler>();
PEWSClientHeaderHandler wsSecurity = new PEWSClientHeaderHandler();
handlerChain.add(wsSecurity);
pewsBinding.setHandlerChain(handlerChain);
此外,还有一个针对 Metro 的答案,但类似的技巧也可能适用于 WebSphere: https://stackoverflow.com/a/7849613/192801这个答案还展示了如何以编程方式注册处理程序:https://stackoverflow.com/a/1806477/192801
关于java - 不使用注释 @HandleChain 实现 SOAPHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479761/