1

我的 Spring Cloud 配置客户端无法解析 server1 属性。它抛出“引起:java.lang.IllegalArgumentException:无法解析值“$ {server1}”中的占位符'server1'”

@Controller
@RefreshScope
public class OSLController {
    @Value("${server1}")
    public String oslServer; 
}

这是配置客户端的 bootstrap.properties:

spring.cloud.config.uri=http://localhost:8888
spring.profiles.active=preprod
spring.application.name=osl

以下是配置服务器的配置:application.properties

server.port=8888
spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=classpath:/config/osl,classpath:/osl,classpath:/config

以下是浏览器点击时的路径:http://localhost:8888/osl/preprod

{
  "name": "osl",
  "profiles": [
    "preprod"
  ],
  "label": null,
  "version": null,
  "state": null,
  "propertySources": [
    {
      "name": "class path resource [config/osl/osl-preprod.properties",
      "source": {
        "server1": "preprod"
      }
    },
    {
      "name": "class path resource [config/osl/osl.properties",
      "source": {
        "server1": "common"
      }
    }
  ]
}

启动配置客户端时,它会打印以下日志:


2021-02-27 19:19:06.576  INFO 27040 --- [           main] in.rahul.ConfigClient2Application        : Starting ConfigClient2Application using Java 15.0.1 on DESKTOP-CJ4TSGP with PID 27040 (C:\Rahul\Workspace\ConfigClient-2\target\classes started by Rahul in C:\Rahul\Workspace\ConfigClient-2)
2021-02-27 19:19:06.579  INFO 27040 --- [           main] in.rahul.ConfigClient2Application        : No active profile set, falling back to default profiles: default
2021-02-27 19:19:07.282  INFO 27040 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=d5ff5a52-737f-3fd5-8528-04cdeb4cd847
2021-02-27 19:19:07.475  INFO 27040 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)

我正在关注的教程在启动配置客户端时也会打印以下内容

Fetching config from server at: http://localhost:8888/

上面的消息没有出现在我的配置客户端中,这让我相信配置客户端无法识别配置服务器。

有人可以指导问题以及如何解决这个问题吗?如果我能够从浏览器读取配置,为什么客户端无法连接并解析 server1 属性。

我正在使用Windows机器。

谢谢。

4

0 回答 0