2013-01-10 41 views
0

我正在嘗試使用使用JavaScript在Java中構建的Axis服務。使用JavaScript消費Web服務 - 傳遞類型apachesoap:地圖

除了一個搜索操作請求apachesoap:Map類型之外,一切都很好。下面是操作的WSDL部分:

<wsdl:message name="queryRequest"> 
    <wsdl:part name="collection" type="xsd:string"/> 
    <wsdl:part name="service"type="xsd:string"/> 
    <wsdl:part name="lang" type="xsd:string"/> 
    <wsdl:part name="nameToValsMap" type="apachesoap:Map"/> 
    ... 

有什麼辦法,我可以在這樣使用JavaScript類型傳遞數據?

回答

0

apachesoap:Map是一個複雜的類型(元素),而不是xsd:string這是一個值。

如果我沒有弄錯apachesoap是指http://xml.apache.org/xml-soap命名空間。您可能正在調用一些遺留的SOAP Web服務,直接公開java.util.Map(如果我沒有弄錯,那麼對於互操作性來說非常糟糕)。

的WSDL <types>應包含定義爲複雜類型apachesoap:Map,應該是這個樣子的消息(在WSDL應該告訴你確切的形式):

<nameToValsMap> 
    <item> 
    <key>...</key> 
    <value>...</value> 
    </item> 
    .... 
    <item> 
    <key>...</key> 
    <value>...</value> 
    </item> 
</nameToValsMap>