gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:01:37 25 4
gpt4 key购买 nike

我正在尝试访问某个方面的 MessageContext (或 WebServiceContext),以访问 HTTPServletRequest 以进行日志记录。我想像 spring-ws 那样注入(inject)上下文,但我还没有找到方法。这是我用于 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())也不起作用,但应该可以,因为这只是包装了一个线程本地。我还尝试导入 cxf-extension-jaxws.xml 并使用 id org.apache.cxf.jaxws.context.WebServiceContextImpl 连接 bean,但没有成功(它不为空,但不包含任何内容)有什么想法吗?

谢谢

最佳答案

在 spring 配置中(作为 Message 甚至 Map 类型注入(inject))

    <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");

关于spring - 在 Spring 中的服务类外部访问 jax-rs (CXF) MessageContext (2.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com