【发布时间】:2016-10-16 08:00:54
【问题描述】:
我能够使用 JMS 创建同步服务总线,但无法将其转换为异步。 我正在尝试异步向服务发布请求,因此如果服务关闭,我希望 JMS 队列保留请求消息,并且在服务启动时将消息传递给服务并取回响应。
这是我的代码
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route >
<from id ="server" uri="jetty:http://0.0.0.0:9500/rsb/toService?matchOnUriPrefix=true&enableMultipartFilter=false&disableStreamCache=false"/>
<wireTap uri="log:test?level=INFO"><body><simple>Enter JMS test route and sending message to queue</simple></body></wireTap>
<!--<to uri="direct:queue"/>-->
<to uri="jms://testqueue?requestTimeout=360000&replyTo=bar&replyToDeliveryPersistent=true&exchangePattern=InOut&acknowledgementModeName=AUTO_ACKNOWLEDGE"/>
</route>
<route id="testqueuelistener" streamCache="true">
<from uri="jms://testqueue?replyToDeliveryPersistent=true&replyTo=bar" />
<wireTap uri="log:test?level=INFO"><body><simple>Message recieved from queue: ${body}</simple></body></wireTap>
<to uri="http://localhost:18402/Home/addUser?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
<to uri="jms:service"/>
</route>
<route >
<from uri="jms:service"/>
<transform>
<simple>${body}</simple>
</transform>
</route>
</camelContext>
【问题讨论】:
-
你遇到的实际问题是什么(当你尝试这个时会发生什么)?另外,您使用哪种 JMS 实现,它是如何配置的?
-
jms 配置
我的实际问题是如果服务 "localhost:18402/Home/addUser";已关闭 - 未运行 - 我收到错误 404 Not Found 访问 /rsb/toService 时出现问题。原因:未找到我希望将请求消息保留在队列“testqueue”中,直到服务启动然后接收队列中的消息。
标签: spring asynchronous apache-camel jms