我用CXF(2.2.3)編譯亞馬遜Web服務的WSDL(http://s3.amazonaws.com/ec2-downloads/2009-07-15.ec2.wsdl)如何使用JAXWS/JAXB命名參數
,但得到如下錯誤。
參數:snapshotSet已經存在 爲方法describeSnapshots但 類型 com.amazonaws.ec2.doc._2009_07_15.DescribeSnapshotsSetType的 代替 com.amazonaws.ec2.doc._2009_07_15.DescribeSnapshotsSetResponseType的。 使用JAXWS/JAXB綁定自定義 來重命名參數。
衝突是由於下面的數據類型顯示:
<xs:complexType name="DescribeSnapshotsType">
<xs:sequence>
<xs:element name="snapshotSet" type="tns:DescribeSnapshotsSetType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DescribeSnapshotsResponseType">
<xs:sequence>
<xs:element name="requestId" type="xs:string"/>
<xs:element name="snapshotSet" type="tns:DescribeSnapshotsSetResponseType"/>
</xs:sequence>
</xs:complexType>
我創建一個綁定文件,試圖解決這個問題...但它didn`t做的工作
<jaxws:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
wsdlLocation="EC2_2009-07-15.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<enableWrapperStyle>false</enableWrapperStyle>
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='http://ec2.amazonaws.com/doc/2009-07-15/']">
<jxb:bindings node="xs:complexType[@name='tns:DescribeSnapshotsType']//xs:element[@name='snapshotSet']">
<jxb:property name="snapshotRequestSet"/>
</jxb:bindings>
<jxb:bindings node="xs:complexType[@name='DescribeSnapshotsResponseType']//xs:element[@name='snapshotSet']">
<jxb:property name="snapshotResponseSet"/>
</jxb:bindings>
</jaxws:bindings>
</jaxws:bindings>
,我用的命令,就像下面
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/EC2_2009-07-15.wsdl</wsdl>
<extraargs>
<extraarg>-b</extraarg>
<extraarg>${basedir}/src/main/resources/wsdl/Bindings_EC2_2009-07-15.xml</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
什麼是錯的智慧h我的代碼????
,您可以通過使用SVN檢查出我的項目.... SVN共同http://shrimpysprojects.googlecode.com/svn/trunk/smartcrc/AWSAgent/
奇怪的是,wsdl2java標誌'-autoNameResolution'應該自動解決衝突...順便說一句,你的自定義綁定有什麼問題?你有沒有得到同樣的錯誤? – 2009-10-01 22:46:58