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

我试图在一个方面访问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但不保存任何东西)任何想法?

谢谢

解决方法:

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

上一篇:java – 字符串参数通常会在Web服务中自动转义吗?


下一篇:cxf – 动态调用Web服务的简便方法(无需JDK或代理类)