如何在ActiveMQ中从MQTT生成并作为MQTT和JMS使用

如何在ActiveMQ中从MQTT生成并作为MQTT和JMS使用,jms,activemq,mqtt,Jms,Activemq,Mqtt,我有一个设置,其中消息作为MQTT到ActiveMQ生成。 我有两个消费者,一个是JMS,另一个是MQTT 当我将消息作为JMS消息发布到主题“foo”时,我在JMS和MQTT使用者处接收消息,但当我在同一主题上作为MQTT发布消息时,我只在MQTT使用者处接收消息,而在JMS使用者处根本没有接收到任何消息 当发布为MQTT时,我需要特别做些什么,以便能够使用MQTT和JMS 请帮忙 更新: 您的问题似乎是您的JMS消费者希望消息以文本消息的形式到达,这在处理MQTT生成的消息时是错误

我有一个设置,其中消息作为MQTT到ActiveMQ生成。 我有两个消费者,一个是JMS,另一个是MQTT

当我将消息作为JMS消息发布到主题“foo”时,我在JMS和MQTT使用者处接收消息,但当我在同一主题上作为MQTT发布消息时,我只在MQTT使用者处接收消息,而在JMS使用者处根本没有接收到任何消息

当发布为MQTT时,我需要特别做些什么,以便能够使用MQTT和JMS

请帮忙

更新:






您的问题似乎是您的JMS消费者希望消息以文本消息的形式到达,这在处理MQTT生成的消息时是错误的假设


MQTT消息是二进制的,没有用于定义有效负载的内容类型信息或头。因此,代理将始终将它们解释为BytesMessage,并将它们作为BytesMessage进行发送。您需要为该事实编写代码并使用ByteMessage,然后将有效负载作为字符串读取。

您应该检查MQTT客户端用于发布到all的主题名是否会导致您的JMS客户端订阅的内容。我将主题名用作JMS和MQTT发布者和订阅者的“foo”。主题名称在我看来并不是一个问题。我认为任何人都无法在不查看ActiveMQ WebConsole的代码和视图的情况下回答,以查看创建了哪些目标。还可以使用最新的ActiveMQ版本来修复所有的bug。您好,我已经添加了代码和屏幕截图。我正在使用ActiveMQ 5.11.1