Jax-ws wsgen生成一个引用公共模式的wsdl

mar*_*eee 5 java wsdl jax-ws wsgen

我们正在开发一个具有几十个服务接口的相当大的应用程序.对于每个服务,使用wsgen生成wsdl(使用jaxws-maven-plugin maven插件).对于每个服务,在wsdl中使用不同的命名空间.

服务接口共享一组公共bean(主要是DTO).现在,每个wsdl的XSD中定义了这些公共类的定义,重复了很多信息,这给我们在客户端造成了问题(大量编译时,类不兼容).

首先,我尝试使用schemagen为公共类创建模式,但无法将其传递给wsgen.有没有办法将一个(或多个)常见XSD传递给wsgen并让生成的wsdl(s)引用这些?

我还尝试使用指定自定义命名空间的@XmlRootElement来注释公共类:这次wsgen识别了自定义命名空间,并为每个wsdl生成了一个XSD,但没有在任何地方包含单个(公共)xsd.

有人能指出我这个问题的解决方案吗?