我正在使用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项目中?
答案 0 :(得分:1)
首先,您可以在项目中使用Metro,Axis或任何其他第三方库来生成客户端代码。但是,如果您不想使用第三方库,则可以自行生成所需的wsse标头。
followinf链接描述了如何生成所需的标题以调用wsse安全的Web服务,您应该只实现自己的SOAPHandler
:
http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client/