【问题标题】:Spring Boot 3.0.0, SQS: java.lang.ClassNotFoundException: org.springframework.messaging.handler.annotation.support.PayloadArgumentResolverSpring Boot 3.0.0,SQS:java.lang.ClassNotFoundException:org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver
【发布时间】:2022-12-30 20:44:23
【问题描述】:

我正在尝试设置 @SqsListener 工作,但我遇到了这个异常:

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'simpleMessageListenerContainer' defined in org.springframework.cloud.aws.messaging.config.annotation.SqsConfiguration: Failed to instantiate [org.springframework.cloud.aws.messaging.listener.SimpleMessageListenerContainer]: Factory method 'simpleMessageListenerContainer' threw exception with message: Error creating bean with name 'queueMessageHandler' defined in org.springframework.cloud.aws.messaging.config.annotation.SqsConfiguration: org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver
........
........
    Caused by: java.lang.ClassNotFoundException: org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
        ... 44 common frames omitted

从我的 build.gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'org.springframework.cloud:spring-cloud-aws-messaging:2.2.6.RELEASE'
    implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
    implementation 'org.springframework:spring-messaging:6.0.2'

    implementation 'io.awspring.cloud:spring-cloud-starter-aws-messaging:2.4.2'
    implementation 'io.awspring.cloud:spring-cloud-aws-dependencies:2.4.2'
    implementation 'software.amazon.awssdk:sqs:2.18.38'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

我尝试了不同的项目设置,但都以: Caused by: java.lang.ClassNotFoundException: org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver 结尾

我认为 PayloadArgumentResolver 从 Spring 5.2 开始被弃用,取而代之的是 PayloadMethodArgumentResolver

是bug还是依赖问题?

【问题讨论】:

  • 你找到解决办法了吗?我遇到了同样的问题。

标签: java spring spring-boot amazon-sqs sqslistener


【解决方案1】:

尝试将 spring-messaging 降级到版本 5.3.24 作为解决方法

implementation 'org.springframework:spring-messaging:5.3.24'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-22
    • 2016-09-23
    • 2022-12-23
    • 2022-01-07
    • 2022-10-01
    • 2022-08-14
    • 2022-12-22
    • 2022-11-29
    相关资源
    最近更新 更多