2012-10-31 59 views
1

我試圖創建一個JAX-RS客戶端,帖子的XML作爲對象,並接收對響應體的XML從服務器。代碼如下:JAX-RS響應實體類

import org.apache.cxf.jaxrs.client.WebClient; 
.. 
TravelRequest tr = ... 
.. 
WebClient client = WebClient.create(url); 
client.type(javax.ws.rs.core.MediaType.APPLICATION_XML_TYPE).accept(javax.ws.rs.core.MediaType.APPLICATION_XML_TYPE); 
javax.ws.rs.core.Response r = client.post(tr); 
Object response = r.getEntity(); 

響應對象的Java類型是sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream 是否有可能得到TravelRequest類型的對象,而不是讀取XML從輸入流?有人知道它的任何例子嗎?我也可以使用spring來配置我的客戶端。 任何幫助,將不勝感激。

回答

1

這是它是如何做。

TravelRequest travelRequest = client.post(tr, TravelRequest.class); 

希望這會幫助別人。

+0

謝謝。這是正確的把戲。 – GPrathap

1

您正在使用WebClient走錯了路。像accepttype不要」方法改變WebClient,但返回更新客戶端

所以,正確的用法是:

WebClient client = WebClient.create(url); 
Response response = client.type(...).accept(...).post(tr); 

Response.getEntity()然後可以用於提取響應。

CXF支持various forms of data binding,你可以用它來響應主體映射到你的類。

+0

我從JAXB是結合響應體默認的鏈接查看。我如何使用它? – smuco

相關問題