activemq客户端未从队列接收消息
我们正在尝试使用ActiveMQ运行JMS应用程序,但消息接收器存在问题。请查找应用程序和测试使用的以下过程activemq客户端未从队列接收消息,activemq,Activemq,我们正在尝试使用ActiveMQ运行JMS应用程序,但消息接收器存在问题。请查找应用程序和测试使用的以下过程 基于调度程序的JMS应用程序启动 将永久activemq测试消息放入队列中 计划事件尝试从队列接收消息(这不是使用者,但它只是接收者jmsTemplate.receive(队列)) 即使消息在队列中,可以使用activemq控制台浏览,应用程序也看不到它,并说队列中没有收到消息。即使对于一条输入消息,这个问题也会发生,我已经尝试了支持站点上建议的所有配置选项,但没有任何效果。下面是我的a
<?xml version="1.0" encoding="UTF-8"?>
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" persistent="true" dataDirectory="${activemq.data}" schedulePeriodForDestinationPurge="10000" deleteAllMessagesOnStartup="true">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" maxPageSize="5000" gcInactiveDestinations="true" inactiveTimoutBeforeGC="300000">
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000" />
</pendingMessageLimitStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="false" />
</managementContext>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb" />
</persistenceAdapter>
</broker>
以下是生产商代码:
public void sendMessage(String queueName, final String jmsCorrelationId, final String message) {
jmsTemplate.send(queueName, session -> {
TextMessage textMessage = session.createTextMessage(message);
if (StringUtils.isNotBlank(jmsCorrelationId)) {
textMessage.setJMSCorrelationID(jmsCorrelationId);
}
return textMessage;
});
}
请将收到申请表的申请代码张贴出来message@tomredfern,我在问题中包含了消息生产者和接收者代码。谢谢
public void sendMessage(String queueName, final String jmsCorrelationId, final String message) {
jmsTemplate.send(queueName, session -> {
TextMessage textMessage = session.createTextMessage(message);
if (StringUtils.isNotBlank(jmsCorrelationId)) {
textMessage.setJMSCorrelationID(jmsCorrelationId);
}
return textMessage;
});
}