Внедрение CXF JAXRS MessageContext в "in Interceptor"

Я пытаюсь ввести MessageContext в Перехватчик с Фазой как READ следующим образом

@Context
org.apache.cxf.jaxrs.ext.MessageContext.MessageContext messageContext;

Но это не инициализируется и остается нулевым. Можно ли внедрить org.apache.cxf.jaxrs.ext.MessageContext.MessageContext в перехватчик?

Спасибо

1 ответ

Вам может понадобиться добавить <aop:scoped-proxy/> в конфигурационный файл cxf:

<jaxrs:server id="example" address="/">
    <jaxrs:serviceBeans>
         <bean class="org.apache.cxf.systest.jaxrs.CustomerService">
              <aop:scoped-proxy />
         </bean>
    </jaxrs:serviceBeans>
</jaxrs:server>

Также вам нужно создать метод установки для вашего messageContext (это должно быть в вашем классе обслуживания - здесь это "org.apache.cxf.systest.jaxrs.CustomerService"):

private MessageContext messageContext;

@Context
public void setMessageContext(MessageContext messageContext) {
    this.messageContext = messageContext;
}

Также рассмотрите эту ссылку на документацию:
http://cxf.apache.org/docs/jaxrs-services-configuration.html

Другие вопросы по тегам