开发者社区 > 云原生 > 微服务 > 正文

Caused by: com.alibaba.nacos.api.exception.给指点一下?

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:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Jun 20 16:22:33 CST 2024
There was an unexpected error (type=Not Found, status=404).
No message available

大神给指点一下?

展开
收起
真的很搞笑 2024-06-24 17:43:52 50 0
1 条回答
写回答
取消 提交回答
  • 问题 :
    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交互的基础,可以避免类似错误的发生。

    image.png

    参考文档https://nacos.io/en/blog/faq/nacos-user-question-history15649/

    2024-06-30 09:15:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载