2008-11-05 52 views
2

我正在使用軸1.4 web服務,該服務返回我想要使用jaxb註釋解組到我的域對象中的肥皂響應。我的初始測試工作得很好,直到一些返回的消息具有multiRef元素。使用multiRef編組的對象在我的客戶端註釋模型對象中顯示爲空。使用jaxb反編組包含soap的soap響應

我的問題是JAXB支持使用multiRef元素解組肥皂響應嗎?如果是這樣,怎麼樣?如果沒有,是否有人知道一個更好的方法來將軸1.4 soap響應解組到java的域模型中?

回答

1

在Web服務的情況下,JAXB並不是單獨存在,而是作爲ws客戶端框架的數據綁定部分。所以我假設你的問題是如何使用JAXB作爲軸1.4內的數據綁定。一般來說,我認爲有沒有簡單的方法來實現這一點,看看軸用戶郵件列表中的以下線程:Specify JAXB generated complex types to Axis web service

如果您可以升級到使用axis2來使用web服務,那麼它應該更容易,因爲axis2帶有可插入的數據綁定架構,包括集成的jaxb實現。

0

如果Web服務的Axis端也受您控制,那麼也許您可以將屬性org.apache.axis.AxisEngine.PROP_DOMULTIREFS設置爲false。在這種情況下,Axis不應創建multiRef元素。我在客戶端Axis上使用了這個屬性,希望它能以相同的方式在服務器端工作。

0

如果您正在處理MultiREF,那麼您可能正在使用RPC服務。 JAXB適用於文檔樣式的web服務。

爲了消耗的RPC式服務,不使用任何外部喜歡JAXB,JIBX或

使用普通JAX-RPC結合,WSDL2Java的Ant任務可生成存根,並指定 nobinding選項。