我正在使用jaxws-maven-plugin为 Web 服务消费者应用程序执行 wsimport。我正在使用-clientjarwsimport 上的选项,该选项是 2010 年随 JAX-WS 2.2.2 RI 引入的。我这样做是因为我想将 WSDL 捆绑在 jar 中。
我在制作 pom 时没有任何问题。对于插件配置我做了类似的事情:
<configuration>
...
<args>
<arg>-clientjar</arg>
<arg>bundled-wsdl.jar</arg>
</args>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当我执行构建时,我创建了 jar,让我们调用它myapp.jar,bundled-wsdl.jar其中包含文件。在bundled-wsdl.jar的 META-INF 目录中,我找到了 wsdl 和 xsd,就像我喜欢的那样。我对使用该选项生成的 java 代码也非常满意-clientjar。到目前为止,一切都很好。
不过这个东西应该在myapp.jar的 META-INF 里吧?事实上,它位于bundled-wsdl.jar的 META-INF 中,这对我没有多大帮助。
有趣的是,我实际上在myapp.jarMETA-INF 中获取了一个 wsdl 文件,这使得该应用程序能够实际工作。我不知道它是如何到达那里的。此外,xsd 文件不存在,仅在bundled-wsdl.jarMETA-INF 中。
基本问题是如何-clientjar在 Maven 项目中正确使用 wsimport 选项?
Java 1.7.0_45。