java - 不使用注释 @HandleChain 实现 SOAPHandler

标签 java xml web-services websphere-7

我在使用 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/

相关文章:

xml - 为什么人们希望将 Json 和 XML 作为输出传递到他们的 REST 接口(interface)?

javascript - 如何使用 Javascript 计算元素的 XPath 位置?

java - 将 JDBC ResultSet 映射到对象

java - Java中String.matches()的使用

java - Android Studio - 单击按钮后当前 Activity 重新打开

java - Grails 应用程序出现时出现 fatal error

java - 映射、绑定(bind)和解析之间有什么区别?

java - 从负载均衡器后面的多个服务器清除缓存

.net - 无需配置文件即可访问 ASMX Web 服务,在环境之间切换

java - 修改子类中的静态最终常量字段