Spring Boot 3中Eureka Client无法注册至Eureka Server求助
Eureka Client注册失败:JSON解析错误(timestamp不匹配instance)
问题分析
报错核心是Client向Server发送注册请求后,收到的响应JSON根节点为timestamp(Spring Boot默认错误响应格式),而非Eureka预期的instance结构,说明请求未被Eureka Server正确处理,或依赖/配置存在冲突。
解决方案
1. 替换Client中的JAXB依赖为Jakarta版本
Spring Boot 3已完全迁移到Jakarta EE,原javax.xml.bind依赖会导致类路径冲突,替换为Jakarta官方版本:
<!-- 移除原有javax.xml.bind依赖 --> <!-- <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.4.0-b180830.0359</version> </dependency> --> <!-- 添加Jakarta版本JAXB依赖 --> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <scope>runtime</scope> </dependency>
2. 确保Eureka Server的Web端点正常工作
访问http://localhost:8761,若无法打开Eureka控制台,说明Server缺少Web环境依赖,在Server的pom.xml中添加:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
重启Server后再次验证控制台是否可访问。
3. 优化Eureka Client配置
- 移除冲突配置:
eureka.instance.hostname=localhost,因为已设置preferIpAddress=true,两者共存会导致注册逻辑混乱。 - 确认注册地址与Server一致:
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
4. 清理依赖并重新构建
执行Maven命令清理本地仓库缓存,重新构建项目:
mvn clean install -U
5. 验证Server端点日志
查看Eureka Server启动日志,确认存在类似如下信息,说明Eureka REST API端点已正常注册:
Registered map endpoints for Eureka REST API
验证流程
- 修复Server依赖并重启,确认控制台可访问。
- 修复Client依赖与配置,重启Client。
- 查看Client日志,若不再出现
TransportException及JSON解析错误,且Eureka控制台能看到accounts服务实例,说明注册成功。
内容的提问来源于stack exchange,提问作者user10659018
相关产品推荐
相关产品推荐

