java.lang.ClassNotFoundException:com.netflix.discovery.EurekaClientConfig

java.lang.ClassNotFoundException:com.netflix.discovery.EurekaClientConfig,java,spring,cloud,netflix-eureka,Java,Spring,Cloud,Netflix Eureka,我正在使用SpringCloudEureka并使用SpringInitializer()创建项目。生成的POM用户Eureka Finchley.RC2,使用Spring Boot 2.0.2.RELEASE。当我在主类中添加注释@EnableEurekaServer时,也就是用@SpringBootApplication注释的注释,我使用以下命令启动服务器: mvn spring-boot:run 我收到了例外 java.lang.ClassNotFoundException: com.ne

我正在使用SpringCloudEureka并使用SpringInitializer()创建项目。生成的POM用户Eureka Finchley.RC2,使用Spring Boot 2.0.2.RELEASE。当我在主类中添加注释
@EnableEurekaServer
时,也就是用
@SpringBootApplication
注释的注释,我使用以下命令启动服务器:

mvn spring-boot:run
我收到了例外

java.lang.ClassNotFoundException: com.netflix.discovery.EurekaClientConfig
以下是初始化器生成的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>it.javaboss</groupId>
<artifactId>api-gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>api-gateway</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.RC2</spring-cloud.version>
</properties>

<dependencies>
<!--        <dependency> -->
<!--            <groupId>org.springframework.cloud</groupId> -->
<!--            <artifactId>spring-cloud-starter-config</artifactId> -->
<!--        </dependency> -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

4.0.0
it.javaboss
api网关
0.0.1-快照
罐子
api网关
SpringBoot的演示项目
org.springframework.boot
spring启动程序父级
2.0.2.1发布
UTF-8
UTF-8
1.8
Finchley.RC2
org.springframework.cloud
spring cloud starter netflix eureka服务器
org.springframework.cloud
spring云依赖关系
${spring cloud.version}
聚甲醛
进口
org.springframework.boot
springbootmaven插件
春季里程碑
春季里程碑
https://repo.spring.io/milestone
假的

确保

  • 您应该使用spring初始化器仅选择Eureka服务器 创建eureka服务器项目时
  • 具有这些属性(在应用程序中。属性

    这将禁用eureka服务器的客户端特性

  • 您可能在项目中的某个位置导入了
    com.netflix.discovery.EurekaClientConfig
    。因此,组织您的导入一次

  • 我最终用两种不同的解决方案解决了这个问题:

    1.添加另外两个依赖项:

        <dependency>
            <groupId>com.netflix.eureka</groupId>
            <artifactId>eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
            <version>1.3.5</version>
        </dependency>
    
    但在第二种方式中,我仍然需要添加要抛弃的依赖项:

    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.3.5</version>
    </dependency>
    
    
    org.codehaus.jettison
    抛弃
    1.3.5
    
    我在本地maven存储库中发现eureka-clien-1.9.2.jar是零长度文件,所以我删除了它并重新下载依赖项,一切正常

    希望能帮助别人-我在启动eureka服务器时遇到了相同的问题java.lang.NoClassDefFoundError:com/netflix/discovery/converters/XmlXStream,我使用的版本是springboot 2.0.3.RELEASE和spring-cloud.version Finchley.RELEASE。我通过重命名我的本地maven repo用户文件夹解决了这个问题。m2\repository,fresh加载一个新的本地maven repo。

    尝试在pom.xml中使用以下依赖项

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <finalName>eureka-server</finalName>
        </build>
    
    
    org.springframework.boot
    spring启动程序父级
    2.0.3.1发布
    UTF-8
    UTF-8
    1.8
    芬奇利,释放
    org.springframework.cloud
    spring cloud starter netflix eureka服务器
    org.springframework.boot
    弹簧起动试验
    测试
    org.springframework.cloud
    spring云依赖关系
    ${spring cloud.version}
    聚甲醛
    进口
    org.springframework.boot
    springbootmaven插件
    尤里卡服务器
    
    正如“rosa lu”所说,在启动eureka服务器时,我遇到了如下类似问题: java.lang.NoClassDefFoundError:com/netflix/discovery/converters/XmlXStream
    SpringBoot=2.0.5.发布

    SpringCloud.version=Finchley.SR1

    正如“rosa lu”所说,我将本地maven存储库更改为新路径,并重建项目,然后解决问题

    我希望我的回答能帮助任何有同样问题的人。

    只要检查GC(),这个类就存在于
    eureka客户端中。您需要检查它是否存在于依赖关系层次结构中。我只选择了Eurika服务器e Spring云配置。甚至从application.properties中禁用客户端方面,我也有同样的问题。@user2834179您尝试过第三个吗?是编译错误吗?谢谢,我添加了依赖项eureka客户端,但现在我有一个新错误:java.lang.ClassNotFoundException:org.codehaus.jettison.mapped。Configuration@user2834179我没有指示您添加eureka客户。您可以发布相关的代码吗?您使用的是什么IDE?您不应该手动添加这些依赖项。它在没有添加eureka客户端和抛弃依赖项的情况下对我有效。但很高兴你能成功。
    
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.3.5</version>
    </dependency>
    
    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <finalName>eureka-server</finalName>
        </build>