繁体   English   中英

wsdl2java中的属性已定义错误

[英]Property is already defined error in wsdl2java

我正在尝试使用cxf从wsdl2java生成代理类,但是每当尝试尝试时,我都会不断遇到以下错误:

WSDLToJava错误: http: //webservices.sabre.com/wsdl/sabreXML1.0.00/shopping/Grou pedItineraryResponse_v1-0-2.xsd [0,0]:属性“ ValidatingCarrier”已经定义。 使用<jaxb:property>解决此冲突。 http://webservices.sabre.com/wsdl/sabreXML1.0.00/shopping/GroupedItineraryRespon se_v1-0-2.xsd [0,0]:以下位置与上述错误有关

当我从如下网址之一获取信息时,我尝试将绑定文件添加到wsdl2java.bat:

<jaxws:bindings wsdlLocation="http://webservices.sabre.com/wsdl/sabreXML1.0.00/shopping/BargainFinderMaxRQ_v1-8-2.wsdl" 
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
jaxb:extensionBindingPrefixes="xjc" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"> 


<jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:schema"> 
    <jaxb:globalBindings 
            jaxb:version="2.0"> 
        <xjc:simple />  
    </jaxb:globalBindings> 
</jaxws:bindings> 

我使用的是第三方wsdl url,因此我无法在服务器端进行任何更改,我只需要在命令上进行更改即可成功生成代理类。 有人可以帮我解决这个问题吗?

问题在于, FareType具有名为ValidatingCarrier子元素和具有相同名称的属性。

要变通解决此问题,您应该按照错误消息的建议添加字段绑定。 绑定示例:

<jaxb:bindings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
jaxb:version="2.1"
schemaLocation="http://webservices.sabre.com/wsdl/sabreXML1.0.00/shopping/GroupedItineraryResponse_v1-0-2.xsd">
    <jaxb:bindings node="//xs:complexType[@name='FareType']/xs:sequence/xs:element[@name='ValidatingCarrier']">
        <jaxb:property name="validatingCarrierInfo"></jaxb:property>
    </jaxb:bindings>
</jaxb:bindings>

通过此绑定,我将ValidatingCarrier重命名为ValidatingCarrierInfo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM