我需要将 WS-Addressing、WS-Security 和 WS-Reliablity 添加到在 Apache Axis2 上运行的遗留 Java Web 服务。
我发现 Axis2 带有 WS-Addressing 支持。然后我在 Axis2(v1.6.2;在 Apache Tomcat(v1.7.0_30)上运行)上安装了 Apache Rampart(v1.6.2,用于 WS-Security)和 Apache Sandesha2(v1.6.2,用于 WS-Reliable Messaging)。
在做了一些研究之后,我将我的策略添加到了我的服务 META-INF/services.xml 文件中。(该策略需要 https 和要签名的标头。)我可以毫无例外地将服务部署到 Tomcat。我可以使用axis2 url (http://localhost:8080/axis2) 查看服务。
现在我正在尝试为此服务编写一个 java 客户端。我使用axis2 'wsdl2java' 代码生成器来创建存根。我的测试客户端服务能够调用该服务。但是,在服务器端,我收到异常“AxisFault:消息未签名”(策略要求)。服务器日志还显示“CreateSequence”消息(WS-Reliable Messaging 的一部分)未签名。
有谁知道如何签署“CreateSequence”消息?此外,链接到使用 Axis2、Rampart 和 Sandesha2 的示例客户端/服务也会很有帮助。提前致谢。