Доступ к jax-rs (CXF) MessageContext вне класса обслуживания в 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 (т. Е. Нового WebServiceContextImpl ()) также не работает, но предположительно должно работать, поскольку это просто оборачивает локальный поток. Я также попытался импортировать cxf-extension-jaxws.xml и связать компонент с идентификатором org.apache.cxf.jaxws.context.WebServiceContextImpl без удачи (он не нулевой, но ничего не содержит). Есть идеи?
спасибо
Решение
В весеннем конфиге (вводится как сообщение или даже тип карты)
<beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
</beans:bean>
затем в классе приема
request = (HttpServletRequest) currentMessage.get (" HTTP.REQUEST "); Р>