2014-09-23 4 views
2

В Джерси 1 вы можете создать фильтр ответа контейнера и получить доступ к ответу:Как вы можете получить доступ к объекту Response внутри ContainerResponseFilter?

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 для построения. Так почему я не могу получить доступ к нему из фильтра? Я что-то упускаю?

Проблема заключается в том, что мои ресурсы все создают объекты ответа и прикрепляют к ним метаданные, и мне нужен фильтр ответов, который может анализировать эти метаданные. Без доступа к необработанному ответу это не представляется возможным.

ответ

0

В соответствии с Javadocs API Response.getMetadata() считается устаревшим, хотя он не помечен как таковой, как 2.12. Предпочтительной альтернативой является использование HTTP-заголовков.

Смежные вопросы