4

我试图在一个方面访问 MessageContext(或 WebServiceContext)以访问 HTTPServletRequest 以进行日志记录。我想像为 spring-ws 那样注入上下文,但我还没有找到方法。这是我用于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(即 new WebServiceContextImpl())也不起作用,但应该应该因为这只是包装了一个 threadlocal。我也尝试过导入 cxf-extension-jaxws.xml 并使用 id org.apache.cxf.jaxws.context.WebServiceContextImpl 连接 bean,但没有运气(它不是 null,但没有任何东西)有什么想法吗?

谢谢

4

1 回答 1

2

在 spring 配置中(作为 Message 甚至 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");

于 2009-10-23T19:36:12.663 回答