Ceci est un suivi de cette question:message de réponse reçu, mais le fil de réception est sorti en raison d'un délai d'attente
Spring Integration Aggregator failing - "No reply received within timeout" message being displayed
Tout en continuant à tester mon POC sur WebSphere 8.5, la question refait surface lorsque cela erreur est venu de nulle part:
GenericMessag W org.springframework.messaging.core.GenericMessagingTemplate $ l TemporaryReplyChanne envoyer un message de réponse reçu, mais le fil de réception est sorti en raison d'un délai d'attente: ErrorMessage [= charge utile org.springframework. messagerie.MessageHandlingExcept ion: erreur est survenue dans le gestionnaire de messages [productAggregator.generateAggregatedResponse.aggregator.han dler]; l'exception imbriquée est java.lang.NullPointerException, en-têtes = {id = d0b52beb-e9bd-0ba2-6062-6ee83b847c4a, timestamp = 1504755248824}].
Je vois que cela se passe une fois que le Aggregator a commencé, mais ce qui est pas clair est l'exception imbriquée « java.lang.NullPointerException » et ce que la valeur nulle est ici qui conduit à un délai d'attente. Et l'autre question est de savoir si l'agrégateur a une valeur de délai par défaut pour "attendre" sur son canal d'entrée après quoi il arrête d'attendre, conduisant à un délai d'attente.
Tous les pointeurs seront grandement appréciés pendant que je continue à déboguer.
Sincèrement, Bharat
Vous devez afficher votre 'productAggregator.generateAggregatedResponse.aggregator.han dler'. On dirait que c'est un endroit où NPE arrive. Rien à voir avec le composant Aggregator. Il y a juste une passerelle en amont de l'agrégateur et puisqu'il n'y a pas de réponse normale de votre code personnalisé à cause de NPE qui nous apporte l'erreur 'timeout'. –
Merci Gary, Artem - J'ai pu trouver et réparer le NPE. Maintenant, l'agrégateur envoie le message agrégé à son outputChannel (X). Il y a un custom-transformateur qui reçoit ce message, le transforme et le place sur son outputChannel (Y), qui fonctionne aussi parfaitement. La dernière étape est pour une passerelle http à lire à partir de (Y) et cette fois, il y a encore un autre message "envoyer un message de réponse reçu mais le thread de réception s'est éteint en raison d'un délai". Pour votre note, le message sur (Y) a une charge utile/en-têtes appropriée sans aucune valeur NULL - une passerelle HTTP a-t-elle un délai de réponse par défaut w.r.t? – bmylavar
Le délai d'attente par défaut pour la passerelle entrante est de 1 000 ms; vous pouvez l'augmenter en utilisant l'attribut 'reply-timeout'. Le délai d'attente commence lorsque le thread HTTP retourne à la passerelle; pour les flux qui ont des sous-flux asynchrones, il est généralement recommandé d'augmenter le délai d'attente à quelque chose de plus grand que le temps que vous attendez que le flux prenne. –