我试图将MessageContext插入到拦截器中,并将阶段设为READ,如下所示

@Context
org.apache.cxf.jaxrs.ext.MessageContext.MessageContext messageContext;

但这尚未初始化,并且保持为空。是否可以在Interceptor中注入org.apache.cxf.jaxrs.ext.MessageContext.MessageContext?

谢谢

最佳答案

您可能需要将<aop:scoped-proxy/>添加到cxf配置文件中:

<jaxrs:server id="example" address="/">
    <jaxrs:serviceBeans>
         <bean class="org.apache.cxf.systest.jaxrs.CustomerService">
              <aop:scoped-proxy />
         </bean>
    </jaxrs:serviceBeans>
</jaxrs:server>

另外,您还必须为您的messageContext创建一个setter方法(这应该在您的服务类中-这里是“org.apache.cxf.systest.jaxrs.CustomerService”):
private MessageContext messageContext;

@Context
public void setMessageContext(MessageContext messageContext) {
    this.messageContext = messageContext;
}

还请考虑以下文档链接:
http://cxf.apache.org/docs/jaxrs-services-configuration.html#JAXRSServicesConfiguration-FromSpring

关于cxf - 在“in Interceptor”中注入(inject)CXF JAXRS MessageContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9927298/

10-12 15:23