Accès à MessageContext jax-rs (CXF) en dehors de la classe de service dans Spring (2.5)
Question
J'essaie d'accéder au MessageContext (ou au WebServiceContext) sous un aspect pour avoir accès à HTTPServletRequest à des fins de journalisation. Je voudrais insérer le contexte comme je l’ai fait pour spring-ws mais je n’ai pas trouvé le moyen de le faire. Voici ce que j'ai utilisé pour spring-ws:
<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
<aop:scoped-proxy/>
</beans:bean>
Je ne peux pas utiliser l'annotation @Resource sur le champ / la méthode WebServiceContext car je ne suis pas dans le service (essayé malgré tout sans chance). L'instanciation du WebServiceContext (c'est-à-dire la nouvelle WebServiceContextImpl ()) ne fonctionne pas non plus, mais devrait le faire, car cela encapsule simplement un threadlocal. J'ai également essayé d'importer cxf-extension-jaxws.xml et de câbler le haricot avec l'id org.apache.cxf.jaxws.context.WebServiceContextImpl sans aucune chance (il n'est pas nul mais ne contient rien) Des idées?
merci
La solution
Au printemps config (injecté sous forme de message ou même de type map)
<beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
</beans:bean>
puis en classe de réception
request = (HttpServletRequest) currentMessage.get ("HTTP.REQUEST");