gpt4 book ai didi

java - Camel将字符串发送到JMS队列,但检索到字节数组

转载 作者:行者123 更新时间:2023-12-02 05:52:57 24 4
gpt4 key购买 nike

我有一个与 Camel 和 JMS 消息相关的问题。

我的系统包含一个 JMS 主题和一个 JMS 队列,例如 TopicInput 和 QueueInput。我的一个进程监听 QueueInput 并处理发送到该队列中的消息。然后结果被传递到另一个主题,例如 TopicOutput。

处理消息的进程使用Java和Apache Camel。我的 Camel 路由发出的响应是一个字符串。因此,字符串被发送到 TopicOutput。

我的问题是,当我直接将消息发送到 QueueInput 时,一切都很好,我从 TopicOutput 收到字符串响应。但是,如果我将请求消息发送到 TopicInput(无论如何它都会在内部桥接到 QueueInput),我从 TopicOutput 获得的结果将是字符串的字节数组表示形式。

有人知道这是怎么发生的吗?我什至不确定这是Camel的问题还是JMS的问题。

任何建议或提示都会有帮助。

非常感谢。

最佳答案

不太确定您的逻辑到底发生了什么。

JMS 有 BytesMessage 和 TextMessage。要直接获取字符串,消息必须是 TextMessage,否则必须从字节数组构造字符串,您可以从消息中检索该字符串。

当使用 Camel 发送消息时,Camel 会尝试将负载映射到最佳的 JMS 消息类型。检查此表out .

为了确保始终生成 TextMessage(解析为 String),请在使用 JMS 生成器发送之前将有效负载转换为 String。确保您了解流程的每个步骤中的消息类型和有效负载,然后您应该可以轻松解决您的问题。

关于java - Camel将字符串发送到JMS队列,但检索到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com