簡體   English   中英

如何檢索Jersey ContainerRequest屬性?

[英]How to retrieve Jersey ContainerRequest properties?

我在Tomcat中有一個Java 1.6 Web應用程序,帶有一個使用Jersey 1.x的REST api。 在ContainerRequestFilter中,我想設置一個屬性,然后稍后再檢索它。

我在過濾器類中以以下代碼開始:

containerRequest.getProperties().setProperty("programId","foo");

但是我以后如何准確檢索呢?

規范說:“在Servlet容器中,屬性與ServletRequest同步,並公開ServletRequest中可用的所有屬性。對屬性的任何修改也反映在關聯的ServletRequest的屬性集中。”

當我嘗試檢索該屬性時,我具有HttpServletRequest對象的句柄,但該對象沒有“ .getProperties()”方法。

為了解決這個問題,我最終在過濾器類中添加了如下一行: HttpServletRequest.setAttribute("programId", "foo");

我后來能夠使用(String)request.getAttribute("programId") 但是我很好奇應該如何檢索這些屬性。

我一直試圖在一天中的大部分時間里找到解決問題的方法-最終結果是,我認為除了注入請求並將其轉換為一個請求外,沒有其他現成的機制ContainerRequest,如下所示:

public Response resourceMethod(@Context Request request) {
    ContainerRequest containerRequest = (ContainerRequest) request;
    MyProperty prop = (MyProperty) containerRequest.getProperties().get("myPropertyName");

我真的不喜歡在資源中執行此操作,因此繼續使用自定義注入,如Jersey 1.x的自定義注釋注入中所述。

暫無
暫無

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

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