当前位置: 首页 > 知识库问答 >
问题:

Camel作为JMS客户端

狄卓君
2023-03-14

我正在使用Camel开发客户端/服务器请求/回复系统。

客户机和服务器使用两个JMS队列进行通信:请求队列和响应队列。

服务器端有一个camel路由,它使用来自请求队列的JMS消息并同时处理消息。使用响应队列将响应发送回客户端。

客户端向JMS队列发送消息并等待响应。我有两个问题:

>

  • 客户端实际上是其他应用程序将使用的库。我也想在客户端使用Camel,但不知道如何将Camel用作“函数”,即在我的代码中的某个点上,我需要“将此对象发送到此Camel路由”。我该怎么做?

    骆驼是否有使用两个队列处理请求/回复的标准方法?

    谢谢您们。

  • 共有2个答案

    彭宜人
    2023-03-14

    对于问题1,您可以使用可以调用骆驼路线的骆驼生产者模板选项。问题2的答案是肯定的,您可以参考http://camel.apache.org/request-reply.html

    楚意
    2023-03-14

    > < li>

    使用CamelContext中的ProducerTemplate。它要求你在客户端的某个地方保存一个camel上下文。

    你可以做一些事情,比如:producerTemplate.request身体(myPayload,"jms:队列:随便");

    Camel可以使用几种不同的方式处理请求回复。使用显式回复队列(默认情况下不使用临时队列),您可以使用独占模式,该模式更快:jms:queue:request.queue?replyTo=client1.replies

     类似资料:
    • 您好,我的基本要求是有一个可以发送消息的路由,并将其放在JMS队列中。camel上下文在JavaEE 6容器中运行,即JBoss AS 7.1.1,因此它附带了HornetQ for JMS;我通过引导单例启动上下文,但我不使用camel cdi。到目前为止,我一直在使用camel-jms组件,但现在我希望尽可能迁移到camel-sjms,因为springless。 我的问题是:在这个JavaEE

    • 我使用使用SSL的安全通道通过JMS与Weblogic IBM Webpsphere MQ建立了连接。我在Weblogic上的应用程序收到了来自MQ的消息。正在将应答发送到应答队列。响应头存在MQMD,它填充java。在参数持久化JMS发送值“1”中。其他系统需要在持久化时接收值“0”。如何将此参数设置为java?我猜这个参数是javax。jms。deliverymode。但我不知道怎么设置。 无

    • 问题内容: 我正在使用以下代码创建多个JMS会话,以供多个使用者使用消息。我的问题是代码以单线程方式运行。即使消息存在于队列中,第二个线程也无法接收任何内容,而是继续轮询。同时,第一个线程完成对第一批的处理,然后返回并使用剩余的消息。这里的用法有什么问题吗? 问题答案: 您的问题是prefetchPolicy。 所有消息都被分派到第一个连接的使用者,当另一个连接时他没有收到消息,因此,如果您有一个

    • 我正在尝试将JSON格式的路由中的信息转换为JMS格式,以便将其发送到主题。 看看这些文件,我发现: 这里的解释是否正确,我们已经将队列中的消息编组为JSON,然后在将其发送到另一个队列时,它已转换回JMS消息?如果没有,我们如何使用JavaDSL实现这种转换?此外,是否可以沿驼峰路径向JSON添加键值对? 谢谢。

    • 跟随wiki页面https://cwiki.apache.org/qpid/amqp-java-jms-messaging-client.html到https://cwiki.apache.org/qpid/connection-url-format.html. Simple me需要qpid-amqp-1-0-client-jms-0.20-sources。jar接受URI格式,但它似乎忽视了一

    • 我正在尝试获得骆驼路线JMS- 下面的例子说明了如果REST服务的服务器出现故障而无法交付route时会发生什么情况。 我得到了正确的例外: 但是消息被消费并从队列中删除。我的假设是使用事务/事务骆驼和AMQ可以解决这个问题并将消息移动到ActiveMQ.DLQ. 我已经阅读了《骆驼行动》第一版的第9章,并在谷歌上搜索,但没有找到任何解决我问题的方法。 我知道我可以创建/定义自己的Transact