Accediendo a jax-rs (CXF) MessageContext fuera de la clase de servicio en Spring (2.5)
Pregunta
Estoy tratando de acceder a MessageContext (o WebServiceContext) en un aspecto para obtener acceso a HTTPServletRequest para fines de registro. Me gustaría inyectar el contexto como lo hice para spring-ws, pero no he encontrado la manera de hacerlo. Esto es lo que usé para spring-ws:
<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
<aop:scoped-proxy/>
</beans:bean>
No puedo usar la anotación @Resource en el campo / método WebServiceContext ya que no estoy en el servicio (de todos modos lo intenté sin suerte). La creación de una instancia de WebServiceContext (es decir, una nueva WebServiceContextImpl ()) tampoco funciona, pero se supone que debería hacerlo, ya que esto simplemente envuelve un threadlocal. También he intentado importar cxf-extension-jaxws.xml y conectar el bean con id org.apache.cxf.jaxws.context.WebServiceContextImpl sin suerte (no es nulo pero no contiene nada) ¿Alguna idea?
gracias
Solución
En Spring Config (inyectado como mensaje o incluso tipo de mapa)
<beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
</beans:bean>
luego en la clase receptora
request = (HttpServletRequest) currentMessage.get (" HTTP.REQUEST ");