SpringCloud Eureka异常-ClassNotFoundException: javax.xml.bind.JAXBContext 博客分类: SpringCloud SpringCloudSpringBootEurekaJAXBContext
程序员文章站
2024-03-06 17:09:02
...
最近体验了一下SpringCloud,在第一个demo(Eureka服务端)时就报错了,下面描述一下遇到的错误和解决办法,希望对大家有帮助。
创建工程的步骤:
- 开发环境Eclipse(oxygen版本)+STS插件
- 使用springboot快速生成一个Eureka服务端工程
- 根据网上的Eureka入门文章,修改了application.properties文件配置(主要是端口、服务端配置和地址)
- 启动工程,报错Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext,如下图:
解决办法:
使用springboot创建的项目,整个代码和环境(maven管理)都是自动生成的,感觉都是没问题的,而且网上的入门教程都是很简单的操作(只是修改application.properties文件),没有结构的修改,报错的内容更是一头雾水,找不到类,都是maven管理,不应该的呀。后来仔细研究发现这个类是jre中的,更换了jre后,果然没问题了,新的JRE9的类结构换了,默认不包含这个类了,所以报错,Eureka包依赖(maven管理)存在新版的兼容问题。(如果使用jre9,并自己添加jaxb包依赖,还会报其他的找不到类的错误。)
修改前的配置环境:
- pom配置
- jre配置,注意jre的实际路径
修改环境配置:
- 修改pom
- 更新工程
- 查看jre情况,jre换成1.8,JAXB类就是由rt.jar所提供的,注意jre的实际路径
需要特别注意本地确实安装配置了JDK,如果没有安装,执行完更新JRE操作后,实际的jre还是没有变化:
假如您解决了实际问题,并节省了时间,打赏鼓励一下,让咱和您也一起高兴高兴
下一篇: 解决TreeSet类的排序问题