Sns @NotificationMessage не работает с типами, отличными от String - PullRequest
0 голосов
/ 11 мая 2018

Я работаю над интеграцией AWS SNS в Java, используя библиотеку spring-aws, и у меня есть простое средство отображения уведомлений, например:

@NotificationMessageMapping
public void handleNotificationMessage(@NotificationSubject String subject,
                                      @NotificationMessage SimplePojo message) throws IOException {
    log.info("Received message {}", message);
}

Проблема в том, что она не работает, и я получаю следующее исключение:

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Error converting notification message with payload:{"name":"simpleName"}

Я могу изменить SimplePojo на String, а затем выполнить преобразование вручную, и оно будет работать, но вопрос в том, возможно ли избежать ручного преобразования и сделать это так же, как в SqsListeners, где spring обрабатывает его подкапот.

Странно то, что когда я использую локальный стек, он работает.

1 Ответ

0 голосов
/ 15 мая 2018

Таким образом, дело в том, что сообщение, отправленное из темы amazon, имеет тип контента, установленный на text / plain.Автоматическое преобразование будет работать, если для типа содержимого сообщения установлено значение application / json

...