我试图在一个方面访问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”);