返回顶部
首页 > 资讯 > 后端开发 > JAVA >Nacos拉取配置信息失败,@Value exception is java.lang.IlleggalArgumentException: Could not resolve placeholder
  • 866
分享到

Nacos拉取配置信息失败,@Value exception is java.lang.IlleggalArgumentException: Could not resolve placeholder

springcloudjavaspringboot 2023-09-15 13:09:02 866人浏览 八月长安
摘要

具体报错内容如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Inj

具体报错内容如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'pattern.datefORMat' in value "${pattern.dateformat}"

 引发此错误的代码

@Value("${pattern.dateformat}")    public String pattern;

事实上,此问题并不是由这段代码引起,而是由于bootstrap配置信息缺失,导致找不到Nacos上的资源。我的配置信息在dev的namespace中,没有配置namespace信息导致解析时默认跑到了public中寻找,当然找不到了!找不到资源并不会像想象中报Cannot find resource的错误,而是直接报无法解析placeholder的错误。

解决方法是:在bootstrap中添加如下代码

spring:  application:    name: userservice  profiles:    active: dev #这个写你的namespace的真实名称,                如果你的文档在public中,就不用写  cloud:    nacos:      discovery:        server-addr: localhost:8848        namespace: 11288221-e817-4a2e-9986-015c3D5240cc      config:        file-extension: yaml #文件名后缀        prefix: servername #文件名前缀,这里写你的服务名称        namespace: 11288221-e817-4a2e-9986-015c3d5240cc #这个就是引发问题的关键,                    不写这个就报错,他就是命名空间的ID,直接去nacos复制即可。                    与discovery中的配置相同。若你的文件在public中,这一行就不写,                    包括上面的discovery,也不写        server-addr: localhost:8848

再次运行服务,过了!

补充:编写bootstrap所需要的pom依赖:

            com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                            com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-config                            org.springframework.cloud            spring-cloud-starter-bootstrap            3.1.6        

来源地址:https://blog.csdn.net/CSDN_user096A/article/details/131660704

--结束END--

本文标题: Nacos拉取配置信息失败,@Value exception is java.lang.IlleggalArgumentException: Could not resolve placeholder

本文链接: https://lsjlt.com/news/408602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作