Доступ к MessageContext jax-rs (CXF) вне класса обслуживания в Spring (2.5)

Я пытаюсь получить доступ к MessageContext (или WebServiceContext) в аспекте, чтобы получить доступ к HTTPServletRequest для целей ведения журнала. Я хотел бы ввести контекст, как я сделал для spring-ws, но я не нашел способа сделать это. Вот что я использовал для spring-ws:

<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
 <aop:scoped-proxy/>
 </beans:bean>

Я не могу использовать аннотацию @Resource в поле/методе WebServiceContext, так как я не нахожусь в службе (все равно безуспешно пытался). Создание экземпляра WebServiceContext (т. е. new WebServiceContextImpl()) также не работает, но предположительно должно работать, поскольку это просто обертывает локальный поток. Я также безуспешно пытался импортировать cxf-extension-jaxws.xml и подключать bean-компонент с идентификатором org.apache.cxf.jaxws.context.WebServiceContextImpl (он не нулевой, но ничего не содержит). Есть идеи?

Благодарность


person adrian    schedule 21.10.2009    source источник


Ответы (1)


В весенней конфигурации (вводится как сообщение или даже тип карты)

    <beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
    </beans:bean> 

затем в приемном классе

запрос = (HttpServletRequest)currentMessage.get("HTTP.REQUEST");

person adrian    schedule 23.10.2009