Accesso a jax-rs (CXF) MessageContext al di fuori della classe di servizio in primavera (2.5)
Domanda
Sto provando ad accedere a MessageContext (o WebServiceContext) in un aspetto per ottenere l'accesso a HTTPServletRequest ai fini della registrazione. Vorrei iniettare il contesto come ho fatto per la primavera, ma non ho trovato il modo di farlo. Ecco cosa ho usato per spring-ws:
<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
<aop:scoped-proxy/>
</beans:bean>
Non riesco a usare l'annotazione @Resource sul campo / metodo WebServiceContext in quanto non sono nel servizio (provato comunque senza fortuna). L'istanza di WebServiceContext (ovvero il nuovo WebServiceContextImpl ()) non funziona neanche, ma presumibilmente dovrebbe in quanto avvolge un threadlocal. Ho anche provato a importare cxf-extension-jaxws.xml e cablare il bean con id org.apache.cxf.jaxws.context.WebServiceContextImpl senza fortuna (non è nullo ma non contiene nulla) Qualche idea?
grazie
Soluzione
In primavera config (iniettato come Messaggio o anche tipo Mappa)
<beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
</beans:bean>
quindi nella classe ricevente
request = (HttpServletRequest) currentMessage.get (" HTTP.REQUEST ");