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

How to set AUTO_ACKNOWLEDGE on SQS with 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

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