How to fix org.springframework.beans.BeanInstantiationException: Failed to instantiate

Viewed 2496

I'm building a project from akka and spring, this is my POM.xml

<project>
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>WolfPack</groupId>
<artifactId>Worker-Service</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>

<properties>
    <akka.version>2.6.0-M3</akka.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <java.version>11</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.10.0</version>
   </dependency>
   
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-actor_2.12</artifactId>
        <version>${akka.version}</version>
    </dependency>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-http_2.12</artifactId>
        <version>10.1.8</version>
    </dependency>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-stream_2.12</artifactId>
        <version>${akka.version}</version>
    </dependency>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-http-jackson_2.12</artifactId>
        <version>10.1.8</version>
    </dependency>       

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

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.6.0</version>
            <configuration>
                <mainClass>WorkerService</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

and i keep getting this error when i run

org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.fasterxml.jackson.datatype.jsr310.JavaTimeModule]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase
at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:149)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable (Jackson2ObjectMapperBuilder.java:805)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure (Jackson2ObjectMapperBuilder.java:669)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build (Jackson2ObjectMapperBuilder.java:652)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init> (MappingJackson2HttpMessageConverter.java:59)
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init> (AllEncompassingFormHttpMessageConverter.java:76)
at org.springframework.web.client.RestTemplate.<init> (RestTemplate.java:147)
at WorkerService.<init> (WorkerService.java:39)
at WorkerService.main (WorkerService.java:77)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
at java.lang.Thread.run (Thread.java:834)
 Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:1016)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:174)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:550)
at java.net.URLClassLoader$1.run (URLClassLoader.java:458)
at java.net.URLClassLoader$1.run (URLClassLoader.java:452)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:451)
at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
at java.lang.Class.getDeclaredConstructors0 (Native Method)
at java.lang.Class.privateGetDeclaredConstructors (Class.java:3137)
at java.lang.Class.getConstructor0 (Class.java:3342)
at java.lang.Class.getDeclaredConstructor (Class.java:2553)
at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:139)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable (Jackson2ObjectMapperBuilder.java:805)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure (Jackson2ObjectMapperBuilder.java:669)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build (Jackson2ObjectMapperBuilder.java:652)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init> (MappingJackson2HttpMessageConverter.java:59)
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init> (AllEncompassingFormHttpMessageConverter.java:76)
at org.springframework.web.client.RestTemplate.<init> (RestTemplate.java:147)
at WorkerService.<init> (WorkerService.java:39)
at WorkerService.main (WorkerService.java:77)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase
at java.net.URLClassLoader.findClass (URLClassLoader.java:471)
at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:1016)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:174)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:550)
at java.net.URLClassLoader$1.run (URLClassLoader.java:458)
at java.net.URLClassLoader$1.run (URLClassLoader.java:452)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:451)
at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
at java.lang.Class.getDeclaredConstructors0 (Native Method)
at java.lang.Class.privateGetDeclaredConstructors (Class.java:3137)
at java.lang.Class.getConstructor0 (Class.java:3342)
at java.lang.Class.getDeclaredConstructor (Class.java:2553)
at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:139)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable (Jackson2ObjectMapperBuilder.java:805)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure (Jackson2ObjectMapperBuilder.java:669)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build (Jackson2ObjectMapperBuilder.java:652)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init> (MappingJackson2HttpMessageConverter.java:59)
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init> (AllEncompassingFormHttpMessageConverter.java:76)
at org.springframework.web.client.RestTemplate.<init> (RestTemplate.java:147)
at WorkerService.<init> (WorkerService.java:39)
at WorkerService.main (WorkerService.java:77)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
at java.lang.Thread.run (Thread.java:834)

I researched this problem and non of the solutions worked and i think most of them are outdated, i tried downgrading the jackson dependencies to various depths but nothing seemed to work,then i tried removing the jackson Core dependency that didn't work as well, there's no jackson dependency mismatch as well as you can see in the POM.xml.

the error log shows two java lines in my method java:39 and java:77, java:77 is just the instance the java:39 is called, and my java:39 is

private String[] workers  = restTemplate.getForObject("http://localhost:8082/workers", String[].class); 

the json representation of the value return from posting a GET tohttp://localhost:8082/workers is

[
"tim",
"ashen"
]
0 Answers
Related