• spring cloud Eureka server 问题 Spring Cloud java.lang.TypeNotPresentException


    版本:

    spring-cloud.version : Greenwich.SR2 

    pom配置:

     1 <project xmlns="http://maven.apache.org/POM/4.0.0"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     4     <modelVersion>4.0.0</modelVersion>
     5     <parent>
     6         <groupId>org.springframework.boot</groupId>
     7         <artifactId>spring-boot-starter-parent</artifactId>
     8         <version>2.1.7.RELEASE</version>
     9     </parent>
    10     <groupId>com.test</groupId>
    11     <artifactId>3-spring-eureka-server</artifactId>
    12     <version>0.0.1-SNAPSHOT</version>
    13 
    14     <properties>
    15         <java.version>1.8</java.version>
    16         <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    17     </properties>
    18 
    19     <dependencies>
    20         <dependency>
    21             <groupId>org.springframework.cloud</groupId>
    22             <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    23         </dependency>
    24         <dependency>
    25             <groupId>org.springframework.cloud</groupId>
    26             <artifactId>spring-cloud-starter-config</artifactId>
    27         </dependency>
    28         <dependency>
    29             <groupId>org.springframework.boot</groupId>
    30             <artifactId>spring-boot-starter-test</artifactId>
    31             <scope>test</scope>
    32         </dependency> 
    33 
    34     </dependencies>
    35 
    36     <dependencyManagement>
    37         <dependencies>
    38             <dependency>
    39                 <groupId>org.springframework.cloud</groupId>
    40                 <artifactId>spring-cloud-dependencies</artifactId>
    41                 <version>${spring-cloud.version}</version>
    42                 <type>pom</type>
    43                 <scope>import</scope>
    44             </dependency>
    45         </dependencies>
    46     </dependencyManagement>
    47 
    48     <build>
    49         <plugins>
    50             <plugin>
    51                 <groupId>org.springframework.boot</groupId>
    52                 <artifactId>spring-boot-maven-plugin</artifactId>
    53             </plugin>
    54         </plugins>
    55     </build>
    56 </project>
    View Code

    application.properties:

    spring.application.name=spring-cloud-eureka-server
    
    server.port=8761
    eureka.instance.hostname=localhost
    eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
    
    eureka.client.registerWithEureka=false
    eureka.client.fetchRegistry=false
    View Code

    启动AppServer:

    package com.springtest;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @EnableEurekaServer
    @SpringBootApplication
    public class AppServer {
        public static void main(String[] args) {
            SpringApplication.run(AppServer.class, args);
        }
    }
    View Code

    出现错误信息:

    Spring Cloud java.lang.TypeNotPresentException

    解决方案如下:

    是因为用了jdk12的缘故。因为JAXB-API是java ee的一部分,在jdk12中没有在默认的类路径中。从jdk9开始java引入了模块的概念,可以使用模块命令--add-modles java.xml.bind引入jaxb-api。也可以选择另一种解决方法,在maven里面加入下面依赖,可以解决这个问题:

    pom中添加依赖:

    <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-impl</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
    View Code

    最终的Pom.xml 文件如下:

    <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.7.RELEASE</version>
        </parent>
        <groupId>com.test</groupId>
        <artifactId>3-spring-eureka-server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
        </properties>
    
        <dependencies>
            <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-config</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </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-impl</artifactId>
                <version>2.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>2.3.0</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1.1</version>
            </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>
    </project>
    View Code
  • 相关阅读:
    组原——④存储器4
    sdk和api的区别
    转载:直播测试
    生成短链接
    H5调原生
    Android Intent 启动方法和启动Action大全
    ps和top的区别
    安卓知识点
    正则基础之——捕获组(capture group)
    正则基础之——反向引用
  • 原文地址:https://www.cnblogs.com/tianciliangen/p/11441935.html
Copyright © 2020-2023  润新知