我想構建一個基於SOAP的web服務,它將Hashmap作爲輸入使用Java?基於SOAP的Web服務接口與Hasmap作爲輸入參數
有沒有人試過它?這可能會導致什麼樣的問題?
將輸入處理爲散列表或列表的最佳做法是什麼?
感謝您的回答。
我想構建一個基於SOAP的web服務,它將Hashmap作爲輸入使用Java?基於SOAP的Web服務接口與Hasmap作爲輸入參數
有沒有人試過它?這可能會導致什麼樣的問題?
將輸入處理爲散列表或列表的最佳做法是什麼?
感謝您的回答。
找到了將HashMap作爲WebService端點輸入的解決方案。
如果您直接在輸入中定義HashMap,那麼XSD將無法正確顯示它,並且WSDL也不會容易理解。
因此,定義一個輸入類並將HasMap添加爲您計劃爲輸入的屬性。
Class A
{
HasMap inputData;
//Add the Getter and Setter
}
當您輸入Webserivce方法時有類A。現在您的WSDL將具有帶有Key/Vlue對的HasMap。
的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。
感謝您的回答。我認爲這是你想讓所有映射由你自己的方法之一。其他選項我expalined下面是你的HasMap這個對象將是一些concete類型,它將具有實際的屬性。這樣,你的WSDL將首先顯示值作爲你定義的對象的類型。在Object的定義中它將顯示所有的屬性。 –
Jha