背景
我最近不得不编写一些现有 Web 服务的替代品。为此,我使用 jaxws 和 maven 来运行 wsimport 并从提供的 wsdl 生成接口(interface)。这工作正常,并且对于现有客户来说是无缝的。
问题
大多数示例都讨论编写新的 Web 服务,但我现在必须尝试并维护这些服务。我的问题是如何最好地添加或更改这些网络服务。我认为这些是我的选择:
- 我可以向生成的代码添加一些带注释的方法,但这会与导入的 wsdl 不同步,并且当我进行全新构建时,maven 会将其清除
- 我可以编辑导入的 wsdl 并重新运行 mvngenerate-sources
确实,第二个似乎是唯一的选择,但它是一个相当大且笨重的 wsdl,必须手动编辑。为了让事情变得有趣,我们已经为这些更改编写了规范,其中给出了新 wsdl 必须匹配的示例请求和响应。
总之,我想知道是否有比手动编辑 wsdl 更好的方法,或者我是否缺少可以帮助我的工具。 TIA
最佳答案
我们实际上使用生成代码(架构 -> POJO)和生成 Artifact (服务 -> wsdl/架构)的混合体。我们发现使用模式管理 DTO 最简单,因此我们将它们维护在模式中并使用 xjc 吐出 POJO。然而,就像您提到的,维护 WSDL 可能很痛苦。因此,我们管理服务实现本身的操作注释,并允许 JAX-WS 自行自动生成 wsdl。
关于java - 维护使用 wsimport 构建的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16591773/