2011-10-14 91 views
0

我有一個以.NET構建的Web服務(我相信2.0),而且它的WSDL是由框架自動生成的。我試圖爲它構建一個Java客戶端,並使用Axis2的wsdl2java來生成帶有ADB數據綁定的存根類(主要是因爲該客戶端的主要合作伙伴一直在爲使用Java編寫的服務做同樣的事情)。使用Axis2從具有複雜類型的WSDL生成Java類

的WSDL包含許多複雜類型是這樣的......片段:

<s:sequence> 
    <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:long" /> 
    <s:element minOccurs="0" maxOccurs="1" name="PRODUCT_NAME"> 
    <s:complexType mixed="true"> 
    <s:sequence> 
    <s:any /> 
    </s:sequence> 
    </s:complexType> 
    </s:element> 
    ... 

在SOAP消息,這些領域可能都具有CDATA tags--

<PRODUCT_NAME><![CDATA[test]]></PRODUCT_NAME> 

當wsdl2java生成使用此服務的代碼,這些字段被定義爲具有類似PRODUCT_NAME_type0的類型,並且他們希望在SOAP響應中查找PRODUCT_NAME_type0作爲標記。擁有它的Java代碼是一件令人失望的事情,但期望它在SOAP響應中導致錯誤。是否有一個標誌wsdl2java會改變這種行爲?我必須使用不同的綁定嗎?不同的工具?

回答

0

哇,我認爲這將一直是一個人在那裏一個簡單的問題...

我最終決定,亞行很可能並不是旨在支持WSDL我有,並切換到使用的wsimport工具來自JAX-WS,似乎正在工作。