简体   繁体   English

Netflix Eureka Server 未使用 JDK 11 作为 Spring-Boot 应用程序启动。 但同样是在 JDK1.8 上运行

[英]Netflix Eureka Server Not starting as Spring-Boot Application with JDK 11 . But same is running with JDK1.8

I was running eureka-server with JDK 1.8 and with JDK 11 as well about a month ago.大约一个月前,我使用 JDK 1.8 和 JDK 11 运行 eureka-server。 Recently with JDK 11, I am not able to start this as Spring-Boot Application anymore.最近使用 JDK 11,我无法再将其作为 Spring-Boot 应用程序启动。

Workspace工作区

Bash Profile - Bash 配置文件 -

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home 

JRE System Library - JAVASE-11 (AdoptOpenJDK 11.0.2 [11.0.2]) JRE 系统库 - JAVASE-11(采用 OpenJDK 11.0.2 [11.0.2])

( https://github.com/spring-cloud/spring-cloud-netflix/issues/3391 ) I followed these and tried updating pom.xml, but still after start, my localhost:<port> does not show anything. https://github.com/spring-cloud/spring-cloud-netflix/issues/3391 )我按照这些并尝试更新 pom.xml,但仍然在启动后,我的localhost:<port>没有显示任何内容。

Here's my POM -这是我的 POM -

<?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>com.xxxx.xxx.xxx.xxxxxx</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-server</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.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> -->
        <java.version>11</java.version>
        <!-- <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> -->
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-core</artifactId>
            <version>1.11.18</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-cbor</artifactId>
            <version>2.8.7</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-ec2</artifactId>
            <version>1.11.18</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-autoscaling</artifactId>
            <version>1.11.18</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-sts</artifactId>
            <version>1.11.18</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-route53</artifactId>
            <version>1.11.18</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</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>
</project>

This is the error I am facing -这是我面临的错误 -

[main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:125)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:89)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
    at (... )main(EurekaServerApplication.java:16)

Short answer: use compatible Spring Boot and Spring Cloud versions.简短回答:使用兼容的 Spring Boot 和 Spring Cloud 版本。

The Camden release train was marked end-of-life .卡姆登发布系列被标记为报废 The Camden release train builds on Spring Boot 1.4.x, but is also tested with 1.5.x. Camden 发布系列构建在 Spring Boot 1.4.x 上,但也使用 1.5.x 进行了测试。 However it doesn't support spring boo 2.xx versions.但是它不支持 spring boo 2.xx 版本。

In other words, you have mixed up dependencies.换句话说,您混淆了依赖项。

https://spring.io/projects/spring-cloud https://spring.io/projects/spring-cloud

Release Train   Boot Version
----------------------------
Greenwich       2.1.x

Finchley        2.0.x

Edgware         1.5.x

Dalston         1.5.x

我认为您可能需要包含 jaxb jar,它们在 Java9 之后已被弃用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM