构建微服务时,发现网关一直注册,无法注册到nacos,其他服务继续向网络错误报告
首先从依赖开始,直接从可能存在版本冲突的Alibaba云代理引入nacos
接下来,对web模块进行故障诊断
ependencygroupidorg.spring framework.cloud/groupidartifactidspring-cloud-starter-gateway/artifact id/从属---服务注册--- -从属cygroupidcom.Alibaba.cloud/groupidartifactidspring-cloud-starter-Alibaba--
控制台错误noservicetoregisterfornacosclient
检查application.properties配置信息没有效果
server.port=80s pring.application.name=service-gateway # nacos spring.cloud.nacos.discovery.server-addr=
继续故障诊断可能是filter 关键 GlobalFilter错误
//要判断是否为开放api,请使用在token中设定的访问失败的返回方法@ configurationpublicclassgatewayglobalfilterimplementsglobalfilter, 不是确定是否包含ordered { @ autowiredprivaater } @ overridepublicmonovoidfilter (serverwebexchangeexchange, GatewayFilterChain chain ) { string URL=exchange.getrequest } if (urlopen filter.get whitelist (.contains (URL ) ) ) reted } serverhttpresponseresp=exchange.getresponse (; string token=exchange.getrequest ().getHeaders ).getfirst ) ' authorization ' ); ////token为空if(stringutils.isempty ) token ) returnsetunauthorizedresponse (resp,'请登录'); }returnchain.filter(exchange; } @Override public int getOrder () { return 0; }隐私保护状态代码(serverhttpresponseresp,String mess ) http status.unauthooddus charset=UTF-8 '; baseresultreturndata=新base result (401,mess,mess ); 字符串返回str=' '; try { return str=object mapper.writevalueasstring (return data ); } catch (jsonprocessingexceptione ) ) databufferbuffer=resp.buffer factory ).wrap(returnstr.getbytes )标准目录}还是不行,直接分析调试源代码,发现配置文件问题还是无法获取spring.application.name
查看项目结构
在目标中发现未加载到配置文件设置资源文件夹中的标记目录as资源根
配置文件加载成功nacos已成功注册到网关