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

Spring Boot服务注册Eureka报错:无适配text/html的HttpMessageConverter

问题分析

从错误日志能明确两个核心问题:

  1. 服务请求Eureka的地址http://abcd.ap-south-1.elb.amazonaws.com:8761/ServiceDiscovery/eureka/apps/返回400 BAD_REQUEST
  2. 响应的Content-Type是text/html,但客户端需要JSON/XML格式的注册数据,导致无法解析响应

本质是客户端请求的Eureka路径不正确,返回的是Web服务器的错误页面,而非Eureka的API响应内容。

解决方案
  • 检查Eureka Server的上下文路径配置
    打开Eureka Server的application.yml或application.properties,确认是否设置了server.servlet.context-path:

    • 如果没配置这个参数,客户端的Eureka地址应该是http://abcd.ap-south-1.elb.amazonaws.com:8761/eureka/,去掉多余的/ServiceDiscovery
    • 如果确实配置了server.servlet.context-path=/ServiceDiscovery,客户端地址要写成http://abcd.ap-south-1.elb.amazonaws.com:8761/ServiceDiscovery/eureka/,确保路径拼接正确
  • 修正客户端的Eureka配置
    调整客户端配置文件中的eureka.client.service-url.defaultZone:

    # 当Eureka Server无context-path时
    eureka:
      client:
        service-url:
          defaultZone: http://abcd.ap-south-1.elb.amazonaws.com:8761/eureka/
    

    或者:

    # 当Eureka Server配置了context-path=/ServiceDiscovery时
    eureka:
      client:
        service-url:
          defaultZone: http://abcd.ap-south-1.elb.amazonaws.com:8761/ServiceDiscovery/eureka/
    
  • 验证ELB路径转发规则
    如果用AWS ELB转发请求到Eureka Server,检查:

    • ELB监听规则是否存在错误的路径重写或转发逻辑
    • 目标组的健康检查路径是否和Eureka实际健康路径匹配(比如/actuator/health或/eureka/)
  • 直接测试Eureka API
    用curl或Postman直接请求Eureka API,确认返回的是JSON/XML数据:

    curl -v http://abcd.ap-south-1.elb.amazonaws.com:8761/eureka/apps/
    

    如果返回应用列表的JSON/XML,说明路径正确;如果返回HTML错误页,继续排查路径配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:50:17