【发布时间】:2023-04-07 23:00:01
【问题描述】:
我们的主要 wsdl 有一系列 wsdl 导入。每个子 wsdl 导入 common.xsd 并为特定操作定义请求和回复对象。
我希望每个子wsdl文档中的请求对象实现一个通用接口。
首先,我尝试使用 xsd:extension 并将公共元素提取到基类中。这行得通,但会改变公开暴露的 wsdl,我不想这样做。一段时间以来,它一直稳定不变。此更改应该对 Web 服务的消费者完全透明。
我发现了这个: http://confluence.highsource.org/display/J2B/Inheritance+plugin
所以我应该可以使用
但这需要运行带有“-Xinheritance”的 jaxb,我似乎无法在我的 maven 构建中弄清楚如何做到这一点。我正在使用 org.apache.cxf:cxf-codegen-plugin:wsdl2java 从 wsdl 生成 Java 源代码。
我是否需要将模式从 wsdl 提取到 xsds 并直接使用 JAXB 生成 Java 源代码?
还有其他选择吗?
谢谢。
【问题讨论】:
-
我发现
cxf-codegen-plugin对于从 WSDL 生成 Web 服务非常有用......但是对于从模式生成 POJO,我更喜欢使用cxf-xjc-plugin,它可以配置为使用Inheritance plugin,如下所示: gist.github.com/pulkitsinghal/8163296