Search code examples
springgitserverconfigdiscovery

Spring cloud config client Could not locate PropertySource


My config server use natie file system works fine and the dev profile configured contextPath: /config

spring:
  application:
    name: dcit-config
  profiles:
    active: native

management:
  endpoints:
    web:
      exposure:
        include: info, health, metrics
  metrics:
    export:
      atlas:
        enabled: true

---
spring:
  profiles: native
  application:
    name: dcit-config
  cloud:
    config:
      server:
        native:
          searchLocations: classpath:/config/
server:
  port: 2003
eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5
    lease-expiration-duration-in-seconds: 20
  client:
    serviceUrl:
      defaultZone: http://dcit:dcit@localhost:1023/eureka
    registry-fetch-interval-seconds: 10

---
spring:
  profiles: dev
  application:
    name: dcit-config
  cloud:
    config:
      server:
        git:
          uri: http://xxx/git/Arch/dcit.git
          username: user
          password: pass
          searchPaths: dcit-config/src/main/resources/config/
          clone-on-start: true
      fail-fast: true
server:
  port: 2002
  contextPath: /config
eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5
    lease-expiration-duration-in-seconds: 20
  client:
    serviceUrl:
      defaultZone: http://dc:dc@localhost:1023/eureka
    registry-fetch-interval-seconds: 10

The native profile serve configs like this url: http://hostname:2003/config/app-profile.yml and my client works fine.

But if I use dev profile the url http://hostname:2002/config/app-profile.yml also works, but my client got error: java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing

My client config:

spring:
  application:
    name: dcit-auth
  profiles:
    active: dev
  cloud:
    config:
      fail-fast: true
      discovery:
        service-id: dcit-config
        enabled: true
      profile: ${spring.profiles.active}
      label: ${spring.profiles.active}

---
spring:
  profiles: dev
eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5
    lease-expiration-duration-in-seconds: 20
  client:
    serviceUrl:
      defaultZone: http://dc:dc@localhost:1023/eureka
    registry-fetch-interval-seconds: 10

Solution

  • solved by remove contextPath: /config and label configure