java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory

JavaJarNoclassdeffounderrorLive StreamingYoutube Data-Api

Java Problem Overview


I am working on YouTube broadcast sample examples. I have created a sample Java Project & added required jars. But, when I try to run the project it throws exception.

Exception :

Throwable: com/fasterxml/jackson/core/JsonFactory
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
	at com.google.api.client.json.jackson2.JacksonFactory.<init>(JacksonFactory.java:44)
	at com.google.api.services.samples.youtube.cmdline.live.Auth.<clinit>(Auth.java:35)
	at com.google.api.services.samples.youtube.cmdline.live.CreateBroadcast.main(CreateBroadcast.java:55)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	... 3 more

I downloaded the project from this GitHub repository.

Java Solutions


Solution 1 - Java

Add the following dependency to your pom.xml

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.2</version>
</dependency>

Solution 2 - Java

If you are using springboot then jackson is added by default,

So the version of jackson you are adding manualy is probably conflicting with the one spring boot adds,

Try to delete the jackson dependencies from your pom,

If you need to override the version spring boots add, then you need to exclude it first and then add your own

Solution 3 - Java

Because of old version I got this error. Then I changed to this version n error gone Using maven my pom.xml

<properties>  
    ...
    <jackson.version>2.5.2</jackson.version>
</properties>

<dependencies>
...
        <dependency>
	        <groupId>com.fasterxml.jackson.core</groupId>
	        <artifactId>jackson-core</artifactId>
	        <version>${jackson.version}</version>
	    </dependency>
	    <dependency>
	        <groupId>com.fasterxml.jackson.core</groupId>
	        <artifactId>jackson-databind</artifactId>
	        <version>${jackson.version}</version>
	    </dependency>
	    <dependency>
	        <groupId>com.fasterxml.jackson.core</groupId>
	        <artifactId>jackson-annotations</artifactId>
	        <version>${jackson.version}</version>
	    </dependency>
</dependencies>

my old version was '2.2.3'

Solution 4 - Java

In my case problem was when i added com.fasterxml.jackson.dataformat i put the version 2.11.0.

While all other Jackson dependencies were 2.8.0 and one of them was 2.11.0 and changing all to be 2.8.0 fixed it.

FYI, 2.11 is the latest but due to my legacy code, i kept it as 2.8 as well.

Before Fix [ERROR] : com.fasterxml.jackson.dataformat version is 2.11.0:

   <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.11.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.0</version>
    </dependency>

After Fix [WORKED] com.fasterxml.jackson.dataformat version is 2.8.0:

 <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.0</version>
    </dependency>

Solution 5 - Java

The requested jar is probably not jackson-annotations-x.y.z.jar but jackson-core-x.y.z.jar which could be found here: http://www.java2s.com/Code/Jar/j/Downloadjacksoncore220rc1jar.htm

Solution 6 - Java

I have had the same error. I added dependency on pom.xml (I am working with Maven)

<dependency> 
        <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-core</artifactId> 
        <version>2.12.1</version> 
 </dependency> 

I started trying with version 2.9.0, then I found a different error (com/fasterxml/jackson/core/exc/InputCoercionException) then I try different versions until all errors were solved with version 2.12.1

Solution 7 - Java

Solved the problem by upgrading the dependency to below version

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>

Solution 8 - Java

You have to add one jar : jackson-annotations-2.1.2.jar You can download it from here and add it to the class path If you are using the gradle then add the following dependency.

compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.5.2'

Solution 9 - Java

As of jackson 2.7.4 (or earlier maybe), the class is in jacskon-jaxrs-base.jar, which is contained in jackson-jaxrs-json-provider

Solution 10 - Java

The issue was conflicting version of Jackson-databind. My spring-boot version was 2.5.8, and spring-boot was using jackson-core version 2.12.6.

My explicit implementation was using jackson-core version 2.13.2, and this was the cause of the problem.

I commented out the below line from gradle.build, and this fixed the issue.

implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.13.2'

Solution 11 - Java

I faced the same issue and this was happening due to conflicting Jackson version present in the project.

So I explicitly defined the same version for all the Jackson dependencies in my pom.xml. Post this I did not face the error while running jar and it was properly resolved.

Below is what I used:

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.12.0</version>
    </dependency>

Maven Dependency tree with conflicting version

(base) rohiagra-mac:test-secret rohiagra$ mvn dependency:tree|grep jackson
[INFO] |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.7.9:compile
[INFO] |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.7.9:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.7.9:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.0:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.0:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.0:compile
[INFO] |  +- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.32:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.9:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.9:compile

Maven Dependency tree with resolved conflicts

[INFO] |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.7.9:compile
[INFO] |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.7.9:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.7.9:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.0:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.0:compile
[INFO] |  +- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.32:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.9:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.0:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.0:compile

Solution 12 - Java

I fixed this issue by simply removing the version tag as follows:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
</dependency>

Solution 13 - Java

Most of time it is Jackson version incompatibility. Upgrade the jackson version and it should work.

Solution 14 - Java

I have faced the same issue on my project Java 17, I have used the dependency.

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.13.1</version>
		</dependency>

Note that the version of jackson is automatically added by spring boot, you don't really need to add it manually.

I have removed it from the pom.xml

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionVVBView Question on Stackoverflow
Solution 1 - Javashruti1810View Answer on Stackoverflow
Solution 2 - JavaezzouView Answer on Stackoverflow
Solution 3 - Javaasifaftab87View Answer on Stackoverflow
Solution 4 - JavashareefView Answer on Stackoverflow
Solution 5 - JavaEmmanuel DouaudView Answer on Stackoverflow
Solution 6 - JavaYanpolView Answer on Stackoverflow
Solution 7 - JavaArpan SainiView Answer on Stackoverflow
Solution 8 - JavaKartheekView Answer on Stackoverflow
Solution 9 - JavaCecView Answer on Stackoverflow
Solution 10 - JavaMuhammad TariqView Answer on Stackoverflow
Solution 11 - JavaRohit AgrawalView Answer on Stackoverflow
Solution 12 - JavaahmnouiraView Answer on Stackoverflow
Solution 13 - JavaRajnishView Answer on Stackoverflow
Solution 14 - JavaAceneKASDIView Answer on Stackoverflow