我正在使用spring-cloud-aws的SqsListener从 AWS 的简单队列服务 (SQS)接收JSON 格式的AWS SNS HTTP 通知。
这是监听器的代码:
@SqsListener(value = "my-queue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void handle(final MyObject obj) throws Exception {
// ...
}
上面链接的文档只是关于向队列发送和读取普通序列化对象,我认为接收 SNS 消息应该是开箱即用的。但我最终收到转换错误:
10:45:51.480 [simpleMessageListenerContainer-2] 错误 oscamlSimpleMessageListenerContainer - 处理消息时遇到异常。org.springframework.messaging.MessagingException:调用handler方法时发生异常;嵌套异常是 org.springframework.messaging.converter.MessageConversionException: No converter found to convert to class com.myproject.model.MyObject, message=GenericMessage
我还尝试创建一个看起来像上面链接的预期 SNS Json 格式的包装器对象,但我一直收到相同的异常。唯一有效的类型是签名中的字符串。SNS不应该自动转换吗?