SpringCloud Eureka异常-ClassNotFoundException: javax.xml.bind.JAXBContext

阅读更多

       最近体验了一下SpringCloud,在第一个demo(Eureka服务端)时就报错了,下面描述一下遇到的错误和解决办法,希望对大家有帮助。

 

创建工程的步骤:

  1. 开发环境Eclipse(oxygen版本)+STS插件
  2. 使用springboot快速生成一个Eureka服务端工程
  3. 根据网上的Eureka入门文章,修改了application.properties文件配置(主要是端口、服务端配置和地址)
  4. 启动工程,报错Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext,如下图:


     
     

解决办法:

       使用springboot创建的项目,整个代码和环境(maven管理)都是自动生成的,感觉都是没问题的,而且网上的入门教程都是很简单的操作(只是修改application.properties文件),没有结构的修改,报错的内容更是一头雾水,找不到类,都是maven管理,不应该的呀。后来仔细研究发现这个类是jre中的,更换了jre后,果然没问题了,新的JRE9的类结构换了,默认不包含这个类了,所以报错,Eureka包依赖(maven管理)存在新版的兼容问题。(如果使用jre9,并自己添加jaxb包依赖,还会报其他的找不到类的错误。)

 

修改前的配置环境:

  1. pom配置

     
  2. jre配置,注意jre的实际路径


     
     

修改环境配置:

 

  1. 修改pom

     
  2. 更新工程

     
  3. 查看jre情况,jre换成1.8,JAXB类就是由rt.jar所提供的,注意jre的实际路径

     

需要特别注意本地确实安装配置了JDK,如果没有安装,执行完更新JRE操作后,实际的jre还是没有变化:

 

 

 

假如您解决了实际问题,并节省了时间,打赏鼓励一下,让咱和您也一起高兴高兴酷




 
 

 

你可能感兴趣的:(SpringCloud,SpringBoot,Eureka,JAXBContext)