首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Wildlfy 11嵌入式Apache Artemis接收MQTT消息

使用Wildlfy 11嵌入式Apache Artemis接收MQTT消息
EN

Stack Overflow用户
提问于 2017-12-28 18:36:32
回答 1查看 753关注 0票数 1

我想在Wildfly 11中接收带有嵌入式Artemis的MQTT消息。

现状:

  1. 我将MQTT协议支持添加到Wildfly (添加了“缺失”文件夹和Artemis protocol -..jar,并在module.xml中启用了该协议)
  2. 我正在使用完整的独立配置,并为MTQQ添加了受体:

其主题如下:

代码语言:javascript
复制
<jms-topic name="testEndpoint" entries="java:/jms/testEndpoint"/>
  1. 还将mqtt添加到套接字绑定中。

从日志中我可以看到它是有效的:

AMQ221020: MQTT协议的启动受体: 127.0.0.1:1883 AMQ221007: Server现在是活动的AMQ221001: Apache ActiveMQ Artemis消息代理版本1.5.5.jbossorg-008 AMQ221003:部署队列jms.queue.DLQ WFLYMSGAMQ0002:绑定消息对象到jndi名称java:/ConnectionFactory AMQ221003:部署队列jms.queue.ExpiryQueue java:jboss/exported/jms/RemoteConnectionFactory :将消息对象绑定到jndi名称WFLYMSGAMQ0002 AMQ221052:部署主题jms.topic.testEndpoint

  1. 接下来,我编写了一个简单的MDB如下:
代码语言:javascript
复制
    @MessageDriven(
            activationConfig = { @ActivationConfigProperty(propertyName = "destination", 
                                                           propertyValue = "testEndpoint"), 
                                 @ActivationConfigProperty(propertyName = "destinationType", 
                                                           propertyValue = "javax.jms.Topic")
            },
            mappedName = "testEndpoint")
    public class TestEndpoint implements MessageListener {

        private static final Logger logger = Logger.getLogger(TestEndpoint.class.getName());

        public void onMessage(Message message) {
            try {
                logger.debug("message: " + message.getClass().getName());
            } catch (Exception e) {
                logger.debug("exception: " + e.getMessage());
            }
        }

    }
  1. 我可以连接到端口1883上的服务器,当我向testEndpoint发送消息时,我可以在日志中看到:

创建会话: 63f14f85-0fa2-4fe7-a27b-03ef8e6639a2 找不到address=testEndpoint在message=ServerMessage上的任何绑定[messageID=962,durable=true,userID=null,priority=0,bodySize=512,timestamp=0,expiration=0,durable=true,address=testEndpoint,userID=null mqtt.qos.level=1]@749653273 消息ServerMessage[messageID=962,durable=true,userID=null,priority=0,bodySize=512,timestamp=0,expiration=0,durable=true,address=testEndpoint,address=testEndpoint mqtt.qos.level=1]@749653273没有绑定地址:testEndpoint server=ActiveMQServerImpl::serverUUID=c58c74d5-ea71-11e7-9621-a434d929f4aa]@6ff93fb4 QueueImpl[name=$sys.mqtt.retain.testEndpoint,postOffice=PostOfficeImpl postOffice=PostOfficeImpl doing .messageReferences=0

所以看起来我好像错过了一些绑定,但我找不到它会是什么。有人知道吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-29 23:14:13

日志上写着:

AMQ221052:部署主题jms.topic.testEndpoint

它还说:

找不到address=testEndpoint的绑定

所以在我看来,这是"jms.topic.testEndpoint“和"testEndpoint”之间的简单错配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48012636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档