В Джерси 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 для построения. Так почему я не могу получить доступ к нему из фильтра? Я что-то упускаю?
Проблема заключается в том, что мои ресурсы все создают объекты ответа и прикрепляют к ним метаданные, и мне нужен фильтр ответов, который может анализировать эти метаданные. Без доступа к необработанному ответу это не представляется возможным.