我已将 S3 配置为在每次上传文件时触发一个事件。该事件将发送至 SQS。现在我想使用 Spring Cloud for AWS 从队列中读取消息。有没有办法将有效负载转换为表示 S3 事件记录的已知类型?我尝试过
package com.test;
import java.util.Map;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.messaging.handler.annotation.MessageMapping;
import com.amazonaws.services.s3.event.S3EventNotification.S3EventNotificationRecord;
public class SQSHandler {
@MessageMapping("MediaQueue")
private void receiveMessage(S3EventNotificationRecord message, @Headers Map<String, String> headers) {
System.out.println("MYK MYK MYK");
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误
ord, message=GenericMessage [payload={这里是整个有效负载}] 位于 org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver.resolveArgument(PayloadArgumentResolver.java:115) 位于 org.springframework.messaging.handler.inspiration.HandlerMethodArgumentResolverComposite .resolveArgument(HandlerMethodArgumentResolverComposite.java:77)在org.springframework.messaging.handler.invocable.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:137)在org.springframework.messaging.handler.invocable.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:106 )在 org.springframework.messaging.handler.inspiration.AbstractMethodMessageHandler.handleMatch(AbstractMethodMessageHandler.java:447) ... 8 更多
你知道有什么方法可以做这样的事情吗?