2011-11-15 24 views

回答

2

找到了將HashMap作爲WebService端點輸入的解決方案。

如果您直接在輸入中定義HashMap,那麼XSD將無法正確顯示它,並且WSDL也不會容易理解。

因此,定義一個輸入類並將HasMap添加爲您計劃爲輸入的屬性。

Class A 
{ 
HasMap inputData; 

//Add the Getter and Setter 
} 

當您輸入Webserivce方法時有類A。現在您的WSDL將具有帶有Key/Vlue對的HasMap。

2

的CXF java_first_jaxws樣品:

http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/

提供與例如,關於如何 「正確」 句柄映射(以及其他接口派生類型)與JAX-WS/JAXB。基本上,您必須創建一個XmlAdapter,它將地圖轉換爲JAXB可以完全映射的類型。然後JAXB會在運行時自動使用這些適配器來映射它感到滿意的類型。結果是,您可以完全控制生成的schema/wsdl(因此您不必擁有通用的「key」和「value」元素名稱),同時也可以方便地使用Maps。

+0

感謝您的回答。我認爲這是你想讓所有映射由你自己的方法之一。其他選項我expalined下面是你的HasMap 這個對象將是一些concete類型,它將具有實際的屬性。這樣,你的WSDL將首先顯示值作爲你定義的對象的類型。在Object的定義中它將顯示所有的屬性。 – Jha