Spring Boot服务注册Eureka报错:无适配text/html的HttpMessageConverter
问题分析
从错误日志能明确两个核心问题:
- 服务请求Eureka的地址
http://abcd.ap-south-1.elb.amazonaws.com:8761/ServiceDiscovery/eureka/apps/返回400 BAD_REQUEST - 响应的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配置
调整客户端配置文件中的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
相关产品推荐
相关产品推荐

