3

我正在尝试将 MessageContext 注入拦截器中,其 Phase 为 READ,如下所示

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

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

谢谢

4

1 回答 1

3

您可能需要添加<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

于 2013-08-03T18:30:51.703 回答