Java 错误:应用程序运行失败,尝试实现服务发现Eureka

Java 错误:应用程序运行失败,尝试实现服务发现Eureka,java,netflix-eureka,Java,Netflix Eureka,我有一个非常简单的演示应用程序,我正在使用它向Eureka服务器注册。但是我得到了下面的错误。我已成功注册另一个演示应用程序,但此应用程序失败: 这是错误消息: 12:29:07.678[restartedMain]调试org.springframework.boot.context.logging.ClasspathLoggingApplicationListener-应用程序无法以类路径启动:[文件:/Users/test/Downloads/demorest/target/classes/

我有一个非常简单的演示应用程序,我正在使用它向Eureka服务器注册。但是我得到了下面的错误。我已成功注册另一个演示应用程序,但此应用程序失败:

这是错误消息:

12:29:07.678[restartedMain]调试org.springframework.boot.context.logging.ClasspathLoggingApplicationListener-应用程序无法以类路径启动:[文件:/Users/test/Downloads/demorest/target/classes/] 12:29:07.728[后台预初始化]调试org.jboss.logging-日志提供程序:org.jboss.logging.Log4j2LoggerProvider 12:29:07.729[background preinit]INFO org.hibernate.validator.internal.util.Version-HV000001:hibernate validator 6.0.14.Final 12:29:07.736[后台预初始化]调试org.hibernate.validator.internal.engine.resolver.TraversableResolvers-在类路径上找不到javax.persistence.persistence。假设非JPA2环境。默认情况下,所有属性都是可遍历的。 12:29:07.741[background preinit]DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser-正在尝试为基于xml的验证器配置加载META-INF/validation.xml。 12:29:07.743[background preinit]DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper-尝试通过TCCL加载META-INF/validation.xml 12:29:07.744[background preinit]DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper-尝试通过hibernate validator的类加载器加载META-INF/validation.xml 12:29:07.744[background preinit]DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser-未找到META-INF/validation.xml。仅使用基于注释的配置。 12:29:07.939[后台预初始化]调试org.hibernate.validator.messageinterpolator.ResourceBundleMessageInterpolator-通过原始TCCL加载的表达式工厂 12:29:07.944[后台预初始化]调试org.hibernate.validator.internal.engine.validatoryImpl-HV000234:使用org.hibernate.validator.MessageInterpolator.ResourceBundleMessageInterpolator作为验证器工厂范围的消息插值器。 12:29:07.944[background preinit]调试org.hibernate.validator.internal.engine.validatoryImpl-HV000234:使用org.hibernate.validator.internal.engine.resolver.TraverseAllTraversableResolver作为验证器工厂范围的可遍历解析器。 12:29:07.945[后台预初始化]调试org.hibernate.validator.internal.engine.validatoryImpl-HV000234:使用org.hibernate.validator.internal.util.ExecutableParameterNameProvider作为ValidatorFactory范围内的参数名称提供程序。 12:29:07.945[后台预初始化]调试org.hibernate.validator.internal.engine.validatoryImpl-HV000234:使用org.hibernate.validator.internal.engine.DefaultClockProvider作为验证工厂范围的时钟提供程序。 12:29:07.945[后台预初始化]调试org.hibernate.validator.internal.engine.validatoryImpl-HV000234:将org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory用作ValidatorFactory范围内的脚本计算器工厂。 12:29:08.513[restartedMain]错误org.springframework.boot.SpringApplication-应用程序运行失败 java.lang.NoSuchMethodError:org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V 位于org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:161) 位于org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:102) 位于org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:68) 位于org.springframework.context.event.SimpleApplicationEventMulticast.doInvokeListener(SimpleApplicationEventMulticast.java:172) 位于org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) 位于org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 位于org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127) 位于org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75) 位于org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) 位于org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347) 位于org.springframework.boot.SpringApplication.run(SpringApplication.java:306) 位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) 位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) 位于com.example.rest.demorest.DemorestApplication.main(DemorestApplication.java:15) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 位于org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)

同样的项目可以在没有尤里卡的情况下顺利启动

   <?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>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.2.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.rest</groupId>
<artifactId>demorest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demorest</name>
<description>Demo project for Spring Boot</description>

<properties>
    <java.version>1.8</java.version>
</properties>

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


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


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
应用程序类别:

@EnableDiscoveryClient
@SpringBootApplication
public class DemorestApplication {

public static void main(String[] args) {
    ApplicationContext ctx = SpringApplication.run(DemorestApplication.class, args);

    String[] beanNames = ctx.getBeanDefinitionNames();
    //Arrays.sort(beanNames);

    for(String name : beanNames)
        System.out.println(name);
}

}

很可能是使用错误的依赖项版本运行。请检查错误:error org.springframework.boot.SpringApplication-应用程序运行失败java.lang.NoSuchMethodError:org.springframework.boot.builder.SpringApplicationBuilder。([Ljava/lang/Object;)V在org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:161)上访问hank you pringi。在为cloud.T添加依赖项管理部分后,这对我来说很有效
@EnableDiscoveryClient
@SpringBootApplication
public class DemorestApplication {

public static void main(String[] args) {
    ApplicationContext ctx = SpringApplication.run(DemorestApplication.class, args);

    String[] beanNames = ctx.getBeanDefinitionNames();
    //Arrays.sort(beanNames);

    for(String name : beanNames)
        System.out.println(name);
}

}