J'essaie de créer une route Apache Camel qui envoie un message jms à un sujet et si elle ne reçoit pas de réponse dans un certain laps de temps, elle commence une route en utilisant Spring DSL.JMS Demande/Réponse dans Apache Camel
Le problème que j'ai est qu'il semble que l'appel foTopic est asynchrone. Je m'attends à ce qu'il bloque et attende un message ou jusqu'à ce que le délai d'attente soit atteint, mais il envoie le message au sujet et s'exécute au processeur suivant. Lorsque le délai d'attente se produit, il appelle à nouveau le processeur. Est-ce que mes attentes concernant le composant jms sont erronées ou est-ce que j'ai quelque chose de mal configuré?
REMARQUE: J'utilise des jarres camel 2.3.0.
<endpoint id="foTopic"
uri="jms:topic:${jms.fotopic.topicName}?pubSubNoLocal=true&requestTimeout=5000"/>
<route id="foMasterRegistration" startupOrder="10">
<!-- Fire this route once on startup. -->
<from uri="timer:foStartTimer?period=0"/>
<to uri="foPreProcessor"/>
<doTry>
<setExchangePattern pattern="InOut"/>
<to uri="foTopic"/>
<to uri="foProcessor"/>
<doCatch>
<exception>java.util.concurrent.TimeoutException</exception>
<exception>org.apache.camel.ExchangeTimedOutException</exception>
<to uri="foProcessor"/>
</doCatch>
</doTry>
</route>