我正在尝试访问一个方面的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但不包含任何内容)任何想法?
谢谢
答案 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”);