2012-06-29 1 views
1

J'ai un petit problème et j'ai compris où et pourquoi cela arrive mais je ne savais pas comment y remédier. Le problème est le suivant:Dispatcher n'a pas d'abonnés

J'ai jms: adaptateur de canal sortant, passerelle et canal direct. Et entre ConsumerEndpointFactoryBean a initialisé mon adaptateur et le point de terminaison activé cycle de vie je reçois un message. Ainsi, il a causé org.springframework.integration.MessageDeliveryException: Dispatcher n'a pas abonnés

Comment puis-je dire à mon grain de l'expéditeur point final d'attente a été activée?

Répondre

0

Implémentez SmartLifeCycle et renvoyez une phase de Integer.MAX_VALUE. Ensuite, votre bean sera l'un des derniers à être initialisé (CEFB a une phase = 0).

+0

Merci pour votre réponse. Puis-je le faire sans SmartLifeCycle? Je pense à injecter LifeCycle dans mon expéditeur en tant que propriété et démarrer manuellement le point de terminaison. –

+0

Oui, autoStart = false + démarrage manuel devrait fonctionner. Une autre option consiste à implémenter ApplicationListener et à utiliser l'événement pour signaler que le contexte d'application est entièrement cuit. –

+0

je vous remercie pour vos réponses, je choisis le démarrage manuel et cette solution fonctionne. –