Spring boot Springboot HornetQJMS,消息客户端确认不工作

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

我已经配置了spring boot HornetQ jmsan外部服务器,它可以在积极的情况下工作。但是,只有在没有错误的情况下,我才尝试从队列中删除消息。如果没有错误,则通过将ack模式配置为客户端来确认消息。但是,当我看到队列时,消息被删除。下面是spring引导配置

    @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中删除消息,但不能从队列中删除消息。因此,我试图配置客户端确认模式。好吧,不需要客户端模式。当出现错误时,只需抛出一个带有默认设置的异常,您的消息就会再次发送。