我想在Wildfly 11中接收带有嵌入式Artemis的MQTT消息。
现状:
其主题如下:
<jms-topic name="testEndpoint" entries="java:/jms/testEndpoint"/>从日志中我可以看到它是有效的:
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
@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());
}
}
}创建会话: 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
所以看起来我好像错过了一些绑定,但我找不到它会是什么。有人知道吗?
发布于 2017-12-29 23:14:13
日志上写着:
AMQ221052:部署主题jms.topic.testEndpoint
它还说:
找不到address=testEndpoint的绑定
所以在我看来,这是"jms.topic.testEndpoint“和"testEndpoint”之间的简单错配。
https://stackoverflow.com/questions/48012636
复制相似问题