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

时间:2015-08-19 03:28:51

标签: jaxb wsdl

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

1 个答案:

答案 0 :(得分:1)

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

<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服务的构建中包含剧集。

检查以下链接: https://metro.java.net/2.0/guide/Compiling_multiple_WSDLs_that_share_a_common_schema.html