Eureka Server启动异常与页面404问题求助
解决Eureka Server搭建中的两个启动与页面404问题
问题1:Greenwich.RELEASE版本启动失败(InaccessibleObjectException)
原因
Greenwich.RELEASE依赖的XStream版本较低,在Java 8环境下,XStream通过反射访问java.util.TreeMap.comparator字段时触发权限限制,抛出InaccessibleObjectException,导致嵌入式Tomcat启动中断。
解决方案
提供两种可行方案:
- 方案1:升级XStream依赖版本
在项目构建文件中手动指定高版本XStream(推荐1.4.20及以上),覆盖Spring Cloud默认依赖:
Maven示例:
Gradle示例:<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.20</version> </dependency>implementation 'com.thoughtworks.xstream:xstream:1.4.20' - 方案2:添加JVM启动参数开放反射权限
若升级依赖不便,可在应用启动时添加以下JVM参数,允许XStream访问受限字段:--add-opens java.util/java.util.TreeMap=ALL-UNNAMED
问题2:2022.0.3版本启动后页面404
原因
Spring Cloud 2022.0.3(代号Kilburn)属于2022.x系列,该系列仅兼容Spring Boot 3.0.x及以上版本,且要求Java 17运行环境。而你使用的Spring Boot 2.1.2.RELEASE仅兼容Java 8,版本完全不匹配,导致Eureka Server的静态页面资源无法被正确加载,出现404白标错误。
解决方案
由于你使用Java 8和Spring Boot 2.1.2.RELEASE,需将Spring Cloud版本降级到官方指定兼容的Greenwich系列(如Greenwich.SR6,比Greenwich.RELEASE更稳定),该系列与Spring Boot 2.1.x版本完全适配,同时可结合问题1的解决方案避免启动失败。
内容的提问来源于stack exchange,提问作者swapnil
相关产品推荐
相关产品推荐

