【问题标题】:Combine JAXWS and JAXB bindings结合 JAXWS 和 JAXB 绑定
【发布时间】:2018-04-06 05:22:08
【问题描述】:

我正在使用 jaxws-maven-plugin 自定义由 WSDL 文件生成的 JAXB bean。要自定义它们,我正在使用绑定文件。

基本上我想要:

  • 阻止生成 JAXBElement
  • 自定义一些元素名称

我的绑定文件是:

<jaxws:bindings version="2.1"
           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
           xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
           xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">

<!--Element 1-->
<jaxb:globalBindings generateElementProperty="false">
    <xjc:simple/>
</jaxb:globalBindings>

 <!--Element 2-->
<jaxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema" node="//xs:complexType[@name='WorkDocuments']/xs:choice">
    <jaxb:property name="documents"/>
</jaxb:bindings>

问题是,如果我使用 jaxws:bindings 作为根元素,Element 1 不起作用并生成 JAXBElement

如果我使用 jaxb:bindings 作为根元素,则 Element 1 有效,但 Element 2 无效,因为 xpath 表达式不匹配任何元素。 p>

如何更正绑定文件以使两个元素同时工作?

【问题讨论】:

    标签: jaxb jax-ws jaxb2 maven-jaxb2-plugin jax-ws-customization


    【解决方案1】:

    我找到了一个解决方案,它使用&lt;jaxws:bindings&gt; 作为根元素,然后将globalBindings 放入jaxws:bindings

    即:

    <jaxws:bindings version="2.1"
                xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
                xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
    
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='yourNamespace']">
        <jaxb:globalBindings generateElementProperty="false">
        </jaxb:globalBindings>       
    </jaxws:bindings>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      相关资源
      最近更新 更多