I am trying to a message to SQS in my Java code as follows:
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());
}
}
However at line: final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();
I get the error:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonMerge
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonMerge
I have added the following to my pom.xml:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-models</artifactId>
<version>1.11.86</version>
</dependency>
Below are all the jackson
dependencies in the project:
In mvn
dependency tree I can see:
+- 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
What is causing this error?
Looks like you have jackson twice. Consider this:
+- 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
and this:
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
Please drop the top level dependency to com.fasterxml.jackson.core:jackson-databind:jar:2.9.6
and see if it works.