在Spring(2.5)中访问服务类之外的jax-rs(CXF)MessageContext

时间:2009-10-21 13:10:44

标签: spring aop cxf

我正在尝试访问一个方面的MessageContext(或WebServiceContext)以访问HTTPServletRequest以进行日志记录。我想像春天一样注入上下文,但我还没有找到办法。这是我用于spring-ws的内容:

<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
 <aop:scoped-proxy/>
 </beans:bean>

我无法在WebServiceContext字段/方法上使用@Resource注释,因为我不在服务中(无论如何都没有运气)。实例化WebServiceContext(即新的WebServiceContextImpl())也不起作用,但应该是因为这只是包装了一个threadlocal。我也尝试导入cxf-extension-jaxws.xml并使用id org.apache.cxf.jaxws.context.WebServiceContextImpl连接bean但没有运气(它不是null但不包含任何内容)任何想法?

谢谢

1 个答案:

答案 0 :(得分:2)

在spring config中(注入消息或甚至是Map类型)

    <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”);