簡體   English   中英

我如何從啟用pox的jax-rs / rest-easy啟用方法返回cookie

[英]How do I return a cookie from a jax-rs / rest-easy enabled method that returns a pojo

我必須更改其他人編寫的javax-rs網絡應用程序。 我習慣於長久以來做事,而javax-rs對我來說是新手。該函數當前如下所示:

@POST
@Path("mypath1/mypath2")
@Consumes("application/json")
@Produces("application/json")
public A myMethod(B myB, @Context final HttpServletResponse response)
{
    A myA = new A();
    ...
    return myA;
}

A只是一個pojo,但我想它會在過程中的某個時刻轉換為JSON。

我要補充的一件事是涉及到輕松框架。 我想這就是從pojo到JSON轉換的過程。

我需要檢查cookie,如果找到它,請采取某種措施。 如果請求中沒有一個cookie,我也想返回一個cookie。 讀取cookie似乎很容易-只需將其添加到方法簽名中即可:

@CookieParam("mycookiekey") String mycookieValue

我的困惑是,我在網絡上看到的示例顯示方法返回一個Response,但是此示例返回一個pojo-那么如何將cookie放入響應中? 我以為我可以像通常的long回方式那樣做response.addCookie(...)[其中,響應是傳遞給該方法的HttpServletResponse],但我在網上也看到返回a的方法javax-rs中的cookie有點不同,所以我認為我應該做這樣的事情:

NewCookie newCookie = new NewCookie("mycookiekey", "mycookieValue");
ResponseBuilder builder = Response.ok(myA, MediaType.APPLICATION_JSON);
Response r = builder.cookie(newCookie).build();
return r;

但這將返回一個Response,並且無論調用哪種方法,顯然都希望返回類型為A的對象。

所以我想我的問題是,我是否仍可以從方法中返回類型A的對象,但仍將cookie返回給客戶端?

謝謝,

保羅

可以返回Response而不是實際實體,這是可以的,因為在兩種情況下,轉換為JSON的JSON在HTTP響應中都是相同的,盡管在第一種情況下,它是隱式轉換的,而在第二種情況下,您需要手動進行轉換。 我相信您的摘要是正確的。

暫無
暫無

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

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