Zugriff auf JAX-RS (CXF) Message außerhalb Serviceklasse in Spring (2.5)
Frage
Ich versuche, die Message (oder WebServiceContext) in einem Aspekt für den Zugriff auf den Zugang zum HttpServletRequest zur Protokollierung zu erhalten. Ich möchte den Kontext injizieren, wie ich für den Frühling-ws tat, aber ich habe keine Möglichkeit, es zu tun gefunden. Hier ist, was ich für den Frühling-ws verwendet:
<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
<aop:scoped-proxy/>
</beans:bean>
Ich kann die @Resource Anmerkung auf WebServiceContext Feld / Methode verwenden, wie ich in dem Dienst (versuchte sowieso ohne Glück) nicht bin. Instanziieren des WebServiceContext (dh neue WebServiceContextImpl ()) funktioniert auch nicht, aber angeblich sollte, da dies nur einen Thread wickelt. Ich habe auch versucht cxf-Dehn-jaxws.xml und Verdrahtung der Bohne mit id org.apache.cxf.jaxws.context.WebServiceContextImpl ohne Glück (es ist nicht null, aber nicht halten nichts) Irgendwelche Ideen importieren?
Dank
Lösung
Im Frühjahr config (injiziert als Nachricht oder sogar Art Map)
<beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
</beans:bean>
dann in Empfang Klasse
request = (HttpServletRequest) currentMessage.get ( "HTTP.REQUEST");