簡體   English   中英

CXF Rest Client-為POJO設置ResponseReader(JAXBElement)

[英]CXF Rest Client - set ResponseReader for POJO (JAXBElement)

我想使用CXF Rest Client傳輸POJO對象。 它已經適用於帶有JAXB注釋的對象。 所以我做了很多嘗試。

我試過了

 reader.setEntityClass(ObjectPOJO.class);

和類似的東西

 reader.setEntityClass(JAXBElement<ObjectPOJO>.class);

兩者都不起作用。 第二次嘗試代碼是錯誤的。 我可以將實體類設置為jaxbelement。 也許它可以工作。

發送對象后:

 Response response = client.path(PATH).post(new JAXBElement<ObjectPOJO>(new QName("pojo"), ObjectPOJO.class, pojoObject));

我試圖用不同的嘗試使我的實體。 就像是:

 ObjectPOJO pojo = ((JAXBElement<TenantPOJO>) res.getEntity()).getValue();
  1. 有人知道我是否必須注冊ObjectPOJO.class或JAXBElement.class。 如果第二次嘗試正確,那么它在代碼中的外觀如何?
  2. 什么是使實體脫離響應的正確代碼?

我的服務如下所示:

    @POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response postPojo(JAXBElement<ObjectPOJO> pojo);

編輯:

錯誤

 ERROR org.apache.cxf.jaxrs.client.AbstractClient - .Problem with reading the response message, class : class javax.ws.rs.core.Response, ContentType : application/xml.

要在其他客戶端和其他服務之間傳輸對象(PoJos),則無需使用顯式的JAXB轉換來傳輸它。 如果傳輸對象是JAXB帶注釋的對象,則Jersey容器負責必要的轉換。

Response response = client.path(PATH).post(postObject);
@XmlRootElement
public class PostObject
{
////
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM