Rocky Rook
Rocky Rook

Reputation: 1

Caused by: java.lang.NoClassDefFoundError: com/netflix/discovery/shared/resolver/EurekaEndpoint

Looks like new spring cloud version of netflix has some issues.I am trying to run eureka server locally and trying to register to it and i see the following exception.I thought spring boot will pull all dpendencies.

Here is the exception:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.boot.Bootstrapper : org.springframework.cloud.netflix.eureka.config.EurekaConfigServerBootstrapper
        at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:475)
        at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:457)
        at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:450)
        at org.springframework.boot.SpringApplication.getBootstrapRegistryInitializersFromSpringFactories(SpringApplication.java:294)
        at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:285)
        at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:266)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332)
        at org.example.MyApp.main(MyApp.java:10)
    Caused by: java.lang.NoClassDefFoundError: com/netflix/discovery/shared/resolver/EurekaEndpoint
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3305)
        at java.base/java.lang.Class.getConstructor0(Class.java:3510)
        at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2691)
        at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:470)
        ... 8 more
    Caused by: java.lang.ClassNotFoundException: com.netflix.discovery.shared.resolver.EurekaEndpoint
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
        ... 13 more

My Application.yml

server:
  port: 8081
spring:
  application:
    name: MyApp
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8677/eureka/

my pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>SimpleBootApp</artifactId>
    <version>1.0-SNAPSHOT</version>

<parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <version>2.5.6</version>
</parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!-- Thanks for using https://jar-download.com -->

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.4</version>
                <type>pom</type>
            <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

I dont find any one reporting this issue Please help

Upvotes: 0

Views: 4711

Answers (2)

faucamp
faucamp

Reputation: 121

I know this is an old question, but I recently ran into the same issue. When manually/programmatically instantiating a Eureka client in a Spring environment, the Spring Cloud starters don't necessarily add everything you need without copying what they're doing exactly (which in itself is a non-standard use case from a Spring perspective).

Anyhow, the missing class is part of Archaius. In my case, adding the archaius-core dependency solved it:

<dependency>
    <groupId>com.netflix.archaius</groupId>
    <artifactId>archaius-core</artifactId>
    <version>0.7.12</version>
</dependency>

Upvotes: 0

user16961637
user16961637

Reputation: 21

You need add dependency:

 <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>

Upvotes: 2

Related Questions