java - AWS SQS : java. lang.NoClassDefFoundError : com/fasterxml/jackson/annotation/JsonMerge?

标签 java amazon-web-services amazon-sqs noclassdeffounderror fasterxml

我正在尝试在我的 Java 代码中向 SQS 发送消息,如下所示:

public void pushToSQS(){

    String queueURL = "https://sqs.us-east-1.amazonaws.com/205135634997/myQueue.fifo";
    
    try {

        final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

        sqs.sendMessage(new SendMessageRequest(queueURL,
                "test message"));

    } catch (final AmazonServiceException e) {
        log.error("Error: " + e.getMessage());
    }
}

但是在行:final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

我收到错误:

java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonMerge
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonMerge

我已将以下内容添加到我的 pom.xml 中:

<dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-models</artifactId>
            <version>1.11.86</version>
        </dependency>

以下是项目中的所有 jackson 依赖项: enter image description here

mvn依赖树中我可以看到:

+- org.jboss.resteasy:resteasy-multipart-provider:jar:3.0.19.Final:provided
[INFO] |  +- org.jboss.resteasy:resteasy-client:jar:3.0.19.Final:provided
[INFO] |  +- org.jboss.resteasy:resteasy-jaxb-provider:jar:2.3.5.Final:provided
[INFO] |  |  \- com.sun.xml.bind:jaxb-impl:jar:2.2.5.jboss-1:provided
[INFO] |  |     +- com.sun.istack:istack-commons-runtime:jar:2.6.1:provided
[INFO] |  |     \- com.sun.xml.txw2:txw2:jar:20110809:provided
[INFO] |  +- com.sun.mail:javax.mail:jar:1.5.5:provided
[INFO] |  \- org.apache.james:apache-mime4j:jar:0.6:provided
[INFO] \- org.jboss.resteasy:resteasy-jackson2-provider:jar:3.0.19.Final:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-core:jar:2.6.3:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.3:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.3:provided
[INFO]    \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.6.3:provided
[INFO]       +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.6.3:provided
[INFO]       \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.6.3:provided


[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile

什么原因导致此错误?

最佳答案

看起来你有 jackson 两次。考虑一下:

+- org.jboss.resteasy:resteasy-multipart-provider:jar:3.0.19.Final:provided
[INFO] \- org.jboss.resteasy:resteasy-jackson2-provider:jar:3.0.19.Final:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-core:jar:2.6.3:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.3:provided
[INFO]    +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.3:provided
[INFO]    \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.6.3:provided
[INFO]       +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.6.3:provided
[INFO]       \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.6.3:provided

还有这个:

[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile

请将顶级依赖项删除到 com.fasterxml.jackson.core:jackson-databind:jar:2.9.6 并查看它是否有效。

关于java - AWS SQS : java. lang.NoClassDefFoundError : com/fasterxml/jackson/annotation/JsonMerge?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62678885/

相关文章:

json - 通过 Cloud Formation 控制数据库安全组端口访问

ssl - 客户端 SSL 不适用于 AWS API Gateway

amazon-web-services - shell 访问 ec2 实例

amazon-web-services - 将数据从一个 aws 队列 (SQS) 复制到另一个 SQS 的最佳方法

amazon-web-services - AWS 安全组规则部署(lambda->SQS)

java - 从 Jtable 中删除行时出错

java.io.EOFException :\n not found: limit=0 content=…

java - Weblogic 12.2 上的 Swagger Bootstrap

java - Hibernate 搜索前缀

amazon-web-services - AWS sqs 从 cli 发送消息批处理