您好我是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类中,我只能保留任何一个服务的命名空间。 能帮助我吗?有可能在多个网络服务中分享这些公共课程。
答案 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