簡體   English   中英

獲取Jersey客戶端上PUT請求的狀態

[英]Get status for a PUT request on Jersey client

我在服務器端用Jersey定義了一個Web服務,如下所示:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Path("/foo")
public Response bar(List<Foo> listFoo) {    
 try {
        //save the resource
        } catch (Exception e) {
        log.error("Error saving", e);
        return Response.status(Status.INTERNAL_SERVER_ERROR).build();
    }
    return Response.status(Status.OK).build();
}

我試圖像這樣在我的Jersey客戶端中獲取服務器狀態:

Response response = ws.type(MediaType.APPLICATION_XML).post(Response.class,list);

但是我得到了錯誤:

A message body reader for Java class javax.ws.rs.core.Response, and Java type class javax.ws.rs.core.Response, and MIME media type application/xml was not found javax.ws.rs.core.Response

我真的不需要Response對象,只需要狀態碼,我怎么能得到它?

好的,我通過更改請求響應類型解決了它:

Response response = ws.type(MediaType.APPLICATION_XML).post(Response.class,list);

ClientResponse response = ws.type(MediaType.APPLICATION_XML).post(ClientResponse.class,list);

成為ClientResponse com.sun.jersey.api.client.ClientResponse

@Consumes批注添加到您的網絡服務中,並將參數添加到您的bar()方法中,因為您正嘗試在其中放置一些名為list對象。

我建議您改用@POST ,因為規范@PUT不會返回響應。

UPD。 順便說一句,您的實體為空-您最好刪除@Produces批注,只返回狀態已設置的Response

UPD2。 並從客戶端刪除.accept(MediaType.APPLICATION_XML)方法。

暫無
暫無

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

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