我们可以为多个Web服务共享生成的jaxb类吗

我们可以为多个Web服务共享生成的jaxb类吗,jaxb,wsdl,Jaxb,Wsdl,嗨,我是Web服务和Jaxb的新手。努力让它工作请帮助我。 我们有一个web服务,它是使用JDeveloper从wsdl和XSD生成的,这里所有的Jaxb类都生成到一个包中,这个包具有package-info.java类和一些名称空间。通过使用生成的Jaxb类(其中一些是ErrorType.java和WarningType.java),我们已经编写了一些实用程序类,并且工作正常。 现在我们有了新的wsdl&xsd来为其他需求创建一个新的服务。当我们为这个wsdl生成JAXB时,所有类都被创建到p

嗨,我是Web服务和Jaxb的新手。努力让它工作请帮助我。 我们有一个web服务,它是使用JDeveloper从wsdl和XSD生成的,这里所有的Jaxb类都生成到一个包中,这个包具有package-info.java类和一些名称空间。通过使用生成的Jaxb类(其中一些是ErrorType.java和WarningType.java),我们已经编写了一些实用程序类,并且工作正常。 现在我们有了新的wsdl&xsd来为其他需求创建一个新的服务。当我们为这个wsdl生成JAXB时,所有类都被创建到package-info.java类中具有不同名称空间的其他包中。但是对于这个服务,我们也有一些常见的类,比如ErrorType和WarningType,通过使用它们,我们已经有了一个实用类。 要将该实用程序用于此服务,我必须将所有公共类分离到一个包中。但问题是,由于这两个服务都有自己的名称空间,在common-package-info.java类中,我只能保留服务的任何一个名称空间。
您能否帮助我跨多个web服务共享这些公共类。

您可以创建一个外部绑定自定义项,该自定义项与共享类的架构/命名空间相匹配,并将它们放入一个单独的包中

<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1">
  <bindings scd="x-schema::tns" xmlns:tns="http://common.schema.ns/">
    <schemaBindings>
      <package name="org.acme.foo.common" />
    </schemaBindings>
  </bindings>
</bindings>

将生成配置为从此创建一个插曲,并将该插曲包含在不同web服务的构建中

检查以下链接:

您好,谢谢您的快速回复。我已经浏览了链接,似乎如果公共模式有不同的名称空间,例如,在服务A中,公共xsd名称空间是org.foo.common,在服务B中,公共xsd名称空间是org.foo.common,那么可能会生成一个单独的包。但在我的例子中,对于服务A,所有XSD都有一个名称空间let org.srv.foo,对于服务B,所有XSD都有另一个名称空间let org.srv.bar。请让我知道,如果我错过了你的建议或链接的任何东西。请注意,我们不能再更改XSD了。