小编sum*_*mmi的帖子

无法使用@SqsListener从SQS读取消息

我正在尝试开发一个 SQS 侦听器,它在后台运行,并在新消息到达时从 AWS SQS 读取消息,并且它永远不应该删除该消息,因为将有一个单独的过程来删除消息。

这是一个独立的应用程序,刚刚开始开发。但无法进一步进行,因为基本的事情不起作用。我确信我错过了一些东西。我正在使用spring-cloud-aws-messaging (版本:1.2.0.BUILD-SNAPSHOT)。

这是一个非常简单的独立应用程序,具有以下文件: 一个 spring 配置文件:application-context.xml(内容已粘贴在上面) 一个 SQS 监听器:SBSQSMessageListener(内容已粘贴在上面) 一个正在加载 application-context.xml 的主程序&创建ApplicationContext

我的 Spring 配置文件:

<aws-context:context-region region="us-west-2"/>

<aws-context:context-credentials>
    <aws-context:simple-credentials access-key="xxxxxxx" secret-key="xxxxxxxxxxxxx" />
</aws-context:context-credentials>

<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />      

<aws-messaging:annotation-driven-queue-listener task-executor="simpleTaskExecutor" />           

<bean id="simpleTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="4" />
    <property name="maxPoolSize" value="10" />
    <property name="queueCapacity" value="1" />
    <property name="WaitForTasksToCompleteOnShutdown" value="true" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我的 SQSListener:

package sb.aws.sqs.listener;

import java.util.concurrent.ExecutionException;
import org.apache.log4j.Logger;
import org.springframework.cloud.aws.messaging.config.annotation.EnableSqs;
import org.springframework.cloud.aws.messaging.listener.annotation.SqsListener;
import org.springframework.cloud.aws.messaging.listener.Acknowledgment;
import org.springframework.cloud.aws.messaging.listener.SqsMessageDeletionPolicy;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.stereotype.Component;

@Component
@EnableSqs
public class …
Run Code Online (Sandbox Code Playgroud)

java spring amazon-sqs amazon-web-services

6
推荐指数
0
解决办法
6833
查看次数

标签 统计

amazon-sqs ×1

amazon-web-services ×1

java ×1

spring ×1