wsimport-如何在单独的项目/文件夹中生成服务端点类和JAXB类
问题内容:
对于具有多个Web服务(多个WSDL)的项目,我们正在使用自顶向下方法。每个Web服务都需要设置为一个单独的项目,并作为单独的War进行部署。
问题在于WSDL共享一些常见的.xsd文件。当前,如果我们为每个WSDL运行wsimport,则将在每个Web服务项目中复制通用的JAXB类。
理想情况下,我们希望在一个公共共享项目中分别生成JAXB类,然后在每个Web服务项目中重用JAXB类项目,但是wsimport不提供跳过JAXB类生成或指定其他位置的选项。
JAXB类。
关于如何在不同的JAX-WS Web服务端点之间共享JAXB类的任何想法?
问题答案:
我知道这个问题已经很久了,但是我想为正在寻找的人分享答案。我知道我花了一段时间才找到答案。
从JAXB 2.1 RI开始,有一个名为“ episodes”的功能可用于简化此过程。
假设您有一个名为myschema.xsd的架构。然后,您需要调用以下命令:
xjc -episode myschema.episode myschema.xsd
如果您要使用一个调用来编译多个xsd文件,这也可以使用。该调用将产生绑定以及myschema.episode文件。
情节文件是一个特殊的绑定文件。然后可以将此文件与wsimport一起使用,如下所示:
wsimport mywsdl.wsdl -b myschema.episode
wsimport现在将使用以前生成的JAXB文件,并将生成任何丢失的东西。
请参阅此页面以获取更多信息。