我使用spring-cloud-aws的SqsListener從AWS的簡單隊列服務(SQS)接收JSON Format中的AWS SNS HTTP通知。在SNS和SQS中使用SqsListener
這是對於聽者的代碼:
@SqsListener(value = "my-queue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void handle(final MyObject obj) throws Exception {
// ...
}
上面鏈接的文檔僅是有關發送和閱讀純序列化對象的隊列和我認爲接收SNS消息的預期工作開箱。但我最終接收轉換錯誤:
10:45:51.480 [SimpleMessageListenerContainer一樣-2] ERROR o.s.c.a.m.l.SimpleMessageListenerContainer - 異常遇到 處理郵件時。 org.springframework.messaging.MessagingException:調用處理程序方法時發生異常 ;嵌套的例外是 org.springframework.messaging.converter.MessageConversionException:發現轉換爲類com.myproject.model.MyObject沒有 轉換器, 消息= GenericMessage
我也嘗試創建一個包裝對象,看起來像上面鏈接了預期的SNS Json格式,但我一直得到相同的異常。唯一可用的類型是簽名中的字符串。不應該自動轉換SNS嗎?
如何從SQS接收對象作爲字符串? SQS是否僅支持字符串作爲消息是不是真的? – jtcotton63
@ jtcotton63這是真的。有效載荷以'String' - 一個JSON對象 - 「@ NotificationMessage」調用一個轉換器,將負載轉換爲所需類的對象。 – msparer