2012-10-31 21 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

相关问题