2015-06-09 4 views
0

Я пишу jax-rs конечные точки. Для некоторого набора конечных точек (существующий код) я хочу установить дополнительный заголовок ответа, который был фактически сгенерирован в перехватчике @AroundInvoke и установлен в атрибут HttpServletRequest. В @AroundInvoke я могу получить доступ к HttpServletRequest, используя @Inject. Но, похоже, я не могу получить доступ к HttpServletResponse в том же самом перехватчике.Настройка заголовка ответа с использованием перехватчика?

Кажется, я могу сделать с PostProcessorInterceptor, но опять же я смущен со следующим документом.

org.jboss.resteasy.spi.interception.PostProcessInterceptor запускается после того, как метод JAX-RS был вызван, но до MessageBodyWriters вызываются. Их можно использовать только на стороне сервера. Используйте их, если вам нужно установить заголовок ответа , если не может быть вызван MessageBodyWriter.

Я использую resteasy, jackson. Если я использую PostProcessorInterceptor, я могу ввести HttpServletResponse? Или я могу установить новый http-заголовок там каким-то образом?

Любой пример кода/направление будут оценены.

+0

, что JavaEE вы работаете? –

+0

Я не уверен ... так как он предварительно настроен. Есть ли какой-либо простой способ найти в затмении? Мы используем wildfly 8.0, я думаю, что это java ee 7 – pinkpanther

ответ

1

С JaxRS 2 (который поставляется с JavaEE 7), вы можете использовать версию ContainerResponseFiltersee also

public class PoweredByResponseFilter implements ContainerResponseFilter { 

    @Inject 
    HttpServletRequest request; 

    @Override 
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) 
     throws IOException { 
      String name = "X-My-Header"; 
      String value = "";// some data from request 
      responseContext.getHeaders().add(name, value); 
    } 
} 
+0

PostProcessorInterceptor устарел, и теперь это нужно использовать вместо этого? – pinkpanther

+0

Не могли бы вы ответить на этот http://stackoverflow.com/questions/30731511/how-to-use-the-same-containerrequestfilter-for-multiple-projects? – pinkpanther

+0

@pinkpanther, если вы хотите изменить фильтры заголовков, более предпочтительны, чем перехватчики. – mkrakhin

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