我们正在开发一个包含几十个服务接口的相当大的应用程序。对于每个服务,使用 wsgen 生成一个 wsdl(使用 jaxws-maven-plugin maven 插件)。对于每个服务,在 wsdl 中使用不同的名称空间。
服务接口共享一组公共 bean(主要是 DTO)。现在这些通用类的定义在每个 wsdl 的 XSD 中定义,复制了很多信息,这给我们在客户端带来了问题(巨大的编译时间,类不兼容)。
首先,我尝试使用 schemagen 为公共类创建模式,但无法将其传递给 wsgen。有没有办法将一个(或多个)常见 XSD 传递到 wsgen 并让生成的 wsdl(s)引用这些?
我还尝试使用指定自定义命名空间的 @XmlRootElement 来注释公共类:这次 wsgen 识别了自定义命名空间并为每个 wsdl 生成了更多的 XSD,但没有在任何地方包含单个(公共)xsd。
有人可以为我指出这个问题的解决方案吗?