wsimport:一次性生成与再生

时间:2013-12-16 20:57:46

标签: jaxb jax-ws wsimport

我正在实现十几个共享相同XSD架构的JAX-WS端点和客户端,但WSDL略有不同。架构是一个“行业标准”,我承诺它永远不会改变。截至目前,每次构建期间都会重新生成JAXB类和JAX-WS工件(我使用NetBeans生成的POM文件)。通过这种方法,我遇到了一些众所周知的问题,没有已知的解决方案:

  • wsimport无法一次处理多个WSDL;因此,对于每个wsimport传递,都会覆盖ObjectFactory,在我的情况下,无法进行通用的JAXBElement<>解组;
  • 无法将JAXB类移动到单独的共享项目中(即,为wsimport提供预编译的JAXB JAR);
  • 我希望JAXB类具有自定义toString()方法,这些方法使用不同的表达式来形成字符串。 (JAXB2 Basics ToString插件仅支持原始toString算法);
  • 我还希望JAXB类具有accept(Visitor)方法;
  • 生成的JAXB类不是JPA友好的开箱即用(HyperJAXB或多或少解决了这个问题)。

这就是为什么我现在感到强烈的诱惑是将生成的类复制到我的src / main,一次性地应用代码修改,以及从我的POM中清除wsimport / xjc任务。这将立即解决所有描述的问题,并且还显着减少构建时间。唯一的缺点是,如果架构确实发生了变化(非常不可能!),那么我就是傻瓜了:)

我是否错过任何其他风险和警告?假设架构不会改变,是否可以安全地丢弃再生以支持一次生成的工件?

0 个答案:

没有答案