Swagger 获取服务 500
- 
描述:swagger 服务上拉取(某一个)服务文档报 500 错误, NullPointerException
- 
解决:经排查,在注册中心上发现启了几个相同的服务,有些是本地服务,访问不通,自然无法拉取文档信息。Swagger 测试请先确保服务端能访问到你的客户端,且本地开发需加上工号后缀以区分服务器上的服务。   
Swagger 上看不到服务
- 
描述:服务已注册到注册中心,但 Swagger 列表里看不到自己的服务   
排查思路:
- 
首先点击注册中心上的实例,看是否能访问通   
- 
如果能访问通,再到 swagger所在服务器上ping ip试试,看能否 ping 通
- 
一般注册中心可以看到本地服务,但 swagger 上看不到,或者刷新权限也返回 500 错误,都是由于服务器上无法访问到你本地服务导致的。 
- 
检查服务路由是否已配置  
- 
检查路由配置的服务名( serviceId)与spring.application.name是否一致,即注册中心显示的服务名与路由对应的服务名必须一致。
- 
检查 hzero_admin库下hadm_service、hadm_service_route表是否有服务和对应的服务路由信息,正常情况下,服务启动后会自动更新服务路由信息。  
- 
最后一步,如果没有可手动调用 hzero-admin服务接口创建,或者在服务治理 > 服务路由功能下维护服务路由(注:创建路由的接口是需要管理员权限的)。 
虚拟机内服务IP无法访问
- 描述:基础服务部署在虚拟机中,注册中心可访问,本地服务可注册上去,但是服务无法访问。访问实例IP地址也无法访问。
- 定位:基础服务部署在虚拟机中,虚拟机中有多块网卡,服务注册的时候使用了宿主机不可访问的那块网卡,因此无法访问。
- 解决:可禁用不可访问的那块网卡,或者设置如下参数,设置其中一个即可
# 设置忽略的网卡 spring.cloud.inetutils.ignored-interfaces # 设置首选的网卡 spring.cloud.inetutils.preferred-networks
Swagger 文档未更新
- 
描述:服务API调整后,Swagger 上未更新。 
- 
原因分析:正常情况下,服务启动后,Swagger 服务监听到服务注册后,会自动拉取服务文档刷新。未自动刷新成功可能是因为服务未自动下线,服务起好后,未监听到服务上线;或者服务还未启动成功,多次获取文档失败导致无法刷新。 
- 
解决:刷新Swagger信息 手动调用 hzero-swagger服务下刷新swagger文档信息接口。