2012-03-29 8 views
3

Ich versuche, Message in einem Interceptor mit der Phase als READ zu injizieren alsInjecting CXF JAXRS Message in einem „in Interceptor“

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

folgt Aber dies ist nicht initialisiert zu werden und bleibt null. Ist es möglich, org.apache.cxf.jaxrs.ext.MessageContext.MessageContext in Interceptor zu injizieren?

Dank

Antwort

2

Sie könnten <aop:scoped-proxy/> in die cxf Konfigurationsdatei hinzufügen müssen:

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

Auch müssen Sie eine Setter-Methode für Ihre Message erstellen (dies in Ihrer Serviceklasse sein sollte - es hier ist "org.apache.cxf.systest.jaxrs.CustomerService"):

private MessageContext messageContext; 

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

auch diese Dokumentation Link vor:
http://cxf.apache.org/docs/jaxrs-services-configuration.html#JAXRSServicesConfiguration-FromSpring

+0

Ich musste die Eigenschaft nicht hinzufügen. Nur der MessageContext-Setter. – mvermand

Verwandte Themen