我正在使用 JAX-WS 用 Java 开发 SOAP Web 服务。我正在使用 Eclipse Juno 和 Weblogic 12c。该 Web 服务正在 EJB 项目中开发。我使用自上而下的方法:从我拥有的 WSDL 中,我使用 JDK 的 wsimport 工具(通过命令行)生成所有 Java 类,将它们导入到项目中,然后提供 SEI 的实现。
WSDL 有一个带有 wsp:Policy 标记的 WS-Policy 规范,但是从 wsimport 生成的代码没有任何类型的信息/注释。因此,我想我必须自己写。
从我所做的搜索来看,似乎我必须使用一些 Weblogic 注释或使用一些 CXF/Axis/Metro 功能。这是真的?我不能使用 JAX-WS 中的任何东西吗?我读到 CXF/Axis/Metro 都是 JAX-WS 的实现,但我不知道我是否使用其中之一,我认为我正在使用 JAX-WS 参考实现,但我不知道如果这是真的。
我还希望保持实现独立于任何应用程序服务器(在本例中为 Weblogic)。如果我必须使用 CXF/Axis/Metro,我如何将它们的功能添加到我的 EJB 项目中?
首先,您可以在项目中使用 Metro、Axis 或任何其他第三方库来生成客户端代码。但是,如果您不想使用第三方库,您可以自己生成所需的 wsse 标头。