Spring boot Springboot HornetQJMS,消息客户端确认不工作
我已经配置了spring boot HornetQ jmsan外部服务器,它可以在积极的情况下工作。但是,只有在没有错误的情况下,我才尝试从队列中删除消息。如果没有错误,则通过将ack模式配置为客户端来确认消息。但是,当我看到队列时,消息被删除。下面是spring引导配置Spring boot Springboot HornetQJMS,消息客户端确认不工作,spring-boot,spring-jms,Spring Boot,Spring Jms,我已经配置了spring boot HornetQ jmsan外部服务器,它可以在积极的情况下工作。但是,只有在没有错误的情况下,我才尝试从队列中删除消息。如果没有错误,则通过将ack模式配置为客户端来确认消息。但是,当我看到队列时,消息被删除。下面是spring引导配置 @Component public class JmsMessageListener { private static Logger LOG = LoggerFactory.getLogge
@Component
public class JmsMessageListener {
private static Logger LOG = LoggerFactory.getLogger(JmsMessageListener.class);
@JmsListener(destination = "KpRqQueue")
public void onMessage(TextMessage message) {
TextMessage txtMsg = message;
String txt;
try {
txt = txtMsg.getText();
LOG.info("Hey I recevied a message {}", txt);
if ("Hello".equals(txt)) {
throw new JMSException("An error");
}
message.acknowledge();
} catch (JMSException e) {
throw JmsUtils.convertJmsAccessException(e);
}
}
}
这是配置文件
spring.hornetq.mode=native
spring.hornetq.host=localhost
spring.hornetq.port=5445
spring.jms.listener.acknowledge-mode=CLIENT
如何启用客户端确认模式。还请告诉我如何手动创建defaulemessagelistenercontainer。您使用的是哪个版本的Spring Boot?最后一个属性是最近添加的,从1.3.0开始才可用。M4我使用的是Spring boot版本1.3.0.M4。对不起,我不确定我是否理解这个问题。您能重新表述一下吗?简言之,如果onmessage方法成功执行,并且onmessage方法中抛出任何错误,我将尝试从hornetq中删除消息,但不能从队列中删除消息。因此,我试图配置客户端确认模式。好吧,不需要客户端模式。当出现错误时,只需抛出一个带有默认设置的异常,您的消息就会再次发送。