如何使用Spring JMS在SQS上设置AUTO_ACKNOWLEDGE?

时间:2019-07-17 21:06:25

标签: java spring spring-jms

我正在尝试通过JMS和Spring设置SQS,但是当我尝试通过AUTO_ACKNOWLEDGE设置会话确认模式时,会出现错误。我该怎么办?

当应用程序收到消息时,我需要对消息消失。

 @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
        buildConnectionFactory();
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(this.connectionFactory);
        factory.setDestinationResolver(new DynamicDestinationResolver());
        factory.setConcurrency("3-10");
        factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
        return factory;
    }

我希望在侦听器收到消息后从队列中确认该消息。但是,当我尝试使用AUTO_ACKNOWLEDGE进行配置时,我收到了实际的错误: 无法为目标设置JMS消息侦听器调用程序...正在尝试恢复。 Cause: com.amazonaws.services.sqs.AmazonSQS.deleteMessage(Lcom/amazonaws/services/sqs/model/DeleteMessageRequest;)V

1 个答案:

答案 0 :(得分:0)

我正在使用1.0.0版的Amazon-sqs-java-messaging-lib。将版本更改为1.0.6后,我可以将参数SessionAcknowledgeMode设置为AUTO_ACKNOWLEDGE。