You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

验证流程

  1. 修复Server依赖并重启,确认控制台可访问。
  2. 修复Client依赖与配置,重启Client。
  3. 查看Client日志,若不再出现TransportException及JSON解析错误,且Eureka控制台能看到accounts服务实例,说明注册成功。

内容的提问来源于stack exchange,提问作者user10659018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:00:54