2014-09-23 86 views
2

在澤西1,你可以創建一個容器響應濾波器並訪問響應:如何訪問ContainerResponseFilter中的Response對象?

public ContainerResponse filter(ContainerRequest request, ContainerResponse response) 
{ 
    Response r = response.getResponse(); 

    // Now I have access to Reponse.getMetadata(), etc. 
} 

但在新澤西州2,ContainerResponseFilter只給我的迴應方面:

public void filter(ContainerRequestContext requestContext, 
        ContainerResponseContext responseContext) throws IOException 
{ 
    // responseContext gives me the entity, but I want the JAX-RS Response object that my resources created 
} 

的實施ContainerResponseContext是ContainerResponse,其中需要一個JAX-RS響應對象來構建。那麼爲什麼我無法從過濾器中訪問它?我錯過了什麼嗎?

我遇到的問題是,我的資源都構建了Response對象並將元數據附加到它們,並且我想要一個可以檢查此元數據的響應篩選器。如果沒有訪問原始響應,這似乎不可能。

回答

0

根據Javadocs API,Response.getMetadata()被認爲不推薦使用,即使它沒有標記爲2.12。首選的方法是使用HTTP標頭。