Spring Core aws Шаблон уведомления о сообщениях не связывает сообщение должным образом - PullRequest
0 голосов
/ 05 февраля 2020

Я использую spring-boot-2.2.1 вместе с AWS SNS & SQS. Я публиковал сообщение из SNS в SQS. Я могу получить сообщение, используя строку, но @NotificationMessage возвращает ноль вместо тела сообщения. Тот же код работал нормально, когда я использовал spring-boot-1.5.19

pom. xml

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-messaging</artifactId>
        </dependency>

Основной файл

        @SpringBootApplication
public class AwsApplication {

    public static void main(String[] args) {
        SpringApplication.run(AwsApplication.class, args);
    }

    @Bean
    public QueueMessagingTemplate queueMessagingTemplate(AmazonSQSAsync amazonSqs) {
        return new QueueMessagingTemplate(amazonSqs);
    }

    @Bean
    public NotificationMessagingTemplate notificationMessagingTemplate(
            AmazonSNS amazonSNS) {
        return new NotificationMessagingTemplate(amazonSNS);
    }

    @Bean
    public IotClient getIotClient() {
        return IotClient.builder()
                .credentialsProvider(() -> AwsBasicCredentials.create(AWS_ACCESSKEY, AWS_SECRETKEY))
                .credentialsProvider(() -> InstanceProfileCredentialsProvider.create().resolveCredentials())
                .region(Region.US_EAST_2)
                .build();
    }
   }

Класс прослушивателя SQS

@SqsListener(value = "${sqs.consumer.name}")
public void receiveSnsSqs(String message, @NotificationMessage Employee employee) {
    System.out.println("SNS Consumer received the message::"+message);
    System.out.println("SNS Consumer received the notificationMessage::"+employee);
    }

В приведенном выше классе прослушивателя я могу получить сообщение, но сотрудник получает нулевое значение. Я отправляю сообщение от AWS SNS напрямую.

Как я уже говорил, он работал нормально до того, как перестал работать после миграции весенней версии на выпуск 2.2.1.

Любая помощь будет очень ценится.

...