Caused by: com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance after all servers([10.126.28.210:8848]) tried: ErrCode:404, ErrMsg:
This application has no explicit mapping for /error, so you are seeing this as a fallback.
大神给指点一下?
问题 :
com.alibaba.nacos.api.exception.NacosException: failed to req API:archive-eureka:8848 nacos v1 ns instance list. code:400 msg: Param ‘serviceName’ is illegal, illegal characters should not appear in the param.
专家官方解答 :
根据您提供的错误信息,nacos-opensource com.alibaba.nacos.api.exception.NacosException: failed to req API:archive-eureka:8848/nacos/v1/ns/instance/list. code:400 msg: Param 'serviceName' is illegal, illegal characters should not appear in the param. 这个错误表明您在尝试通过Nacos API列出实例时,传入的服务名称(serviceName)包含了不被允许的非法字符。
依托于已知的知识,我们可以分析问题原因及提供相应的解决步骤:
分析问题原因
参数校验失败:Nacos服务端在接收到您的请求后,进行了参数校验,并发现serviceName参数含有不应该出现的字符。
非法字符限制:根据Nacos的参数校验规则,服务名称应满足正则表达式^(?!@).((?!@@)[^\u4E00-\u9FA5])*$,这意味着服务名称不能包含中文字符,不能以@开头,也不能连续出现两个@符号。
解决步骤
检查服务名称:首先,您需要检查传递给API请求中的serviceName参数,确认它是否包含了上述不允许的字符类型。
修改服务名称:如果服务名称确实包含了非法字符,您需要对其进行修改,确保其符合Nacos的校验规则。例如,移除所有中文字符、确保不以@开头,且没有连续的@@。
重新发起请求:在修改服务名称后,再次尝试发起请求到Nacos服务端,这次应该能成功执行,不再收到参数校验失败的错误信息。
解释
为什么需要这样做?Nacos实施严格的参数校验是为了提升系统的稳定性和安全性,防止因不当的输入导致的数据异常或安全漏洞。
修改服务名称并重新请求是直接针对错误提示的解决方式,确保请求参数的合法合规性是与Nacos交互的基础,可以避免类似错误的发生。
参考文档https://nacos.io/en/blog/faq/nacos-user-question-history15649/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。