2016-05-06 5 views
0

Ich habe eine separate Callback-Klasse erstellt, die die ConfirmCallback-Schnittstelle implementiert und die confirm() überschreibt. Corrlation Daten und ack funktioniert gut. Aber ich habe mit @Autowired einen Dienst injiziert, um einige andere Aktivitäten nach erfolgreicher Bestätigung aus dem RabbitMQ durchzuführen. Aber diese Service-Referenz wird überhaupt nicht injiziert. Ich habe den gleichen Dienst in anderen Klassen injiziert es funktioniert gut. Mein CodeEinen Dienst in die RabbitMQ einfügen - die ConfirmCallback-Klasse funktioniert nicht

public MyConfirmCallback implements ConfirmCallback { 

@Autowired 
private PostAckService postAckService; 

public void confirm(CorrelationData correlationData, Boolean ack){ 
    //check the ack and verify the correlationdata. 
    postAckService.clearData(....); 
} 

} 

postAckService wird nullpointer Ausnahme werfen. Irgendeine Idee ?

Antwort

0

MyConfirmCallback muss eine Bean im Anwendungskontext sein, damit die automatische Verdrahtung funktioniert. Sie können nicht einfach new MyConfirmCallback() in Ihrer Anwendung verwenden.

Wenn Sie glauben, dass es eine Bohne ist, aktivieren Sie die DEBUG-Protokollierung für org.springframework; Es gibt viele Informationen über die Erzeugung von Bohnen.