我正在尝试访问方面中的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(&quot; HTTP.REQUEST&quot;);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top