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

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

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

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

Спасибо


person user325643    schedule 29.03.2012    source источник


Ответы (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#JAXRSServicesConfiguration-FromSpring

person Stanislav Parkhomenko    schedule 03.08.2013
comment
Мне не нужно было добавлять свойство «aop:scoped-proxy/›». Только установщик MessageContext. - person mvermand; 14.02.2018