繁体   English   中英

java.lang.IllegalStateException:无法从位置“类路径:/application.yml”加载属性源

[英]java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'

Spring Cloud项目出现错误。 在这个项目中,除了从 GIT 读取 .properties 文件之外,我没有做任何特别的事情。

请指导这里还有什么需要更正的地方?

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:535) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:494) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:462) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$4(ConfigFileApplicationListener.java:444) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at java.lang.Iterable.forEach(Unknown Source) ~[na:1.8.0_151]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$5(ConfigFileApplicationListener.java:443) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at java.lang.Iterable.forEach(Unknown Source) ~[na:1.8.0_151]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:440) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:331) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:213) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:196) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:183) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:169) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:358) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:317) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at pluralsight.demo.PluralsightSpringcloudM2ConfigserverGitApplication.main(PluralsightSpringcloudM2ConfigserverGitApplication.java:12) [classes/:na]
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block collection
 in 'reader', line 17, column 17:
                    - "*/perf"
                    ^
expected <block end>, but found Key
 in 'reader', line 18, column 17:
                    uri: https://github.com/rseroter ... 
                    ^

我们如何解决以下错误? 应用程序.yml

---
server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls

          search-paths:
          - 'station*'
          repos:
            perf:
              pattern: 
                - "*/perf"
                uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls-perf

                search-paths:
                - 'station*'

此错误表示 application.yml 的格式存在问题您可以在线验证您的 yml 文件: http ://www.yamllint.com/

尝试删除引号

---
server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls

          search-paths:
          - 'station*'
          repos:
            perf:
              pattern: 
                - */perf ##as it was trying to match the whole pattern
                uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls-perf

                search-paths:
                - 'station*'

如果还是不行,请试试下面的

repos:
  perf:
    pattern: xx*/perf, */pref ##as the fist character can't be a wild card but it can accept multiple value.
    uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls-perf

在处理 yml 文件时寻找正确的缩进也很重要。

我今天遇到了那个错误,一开始我不明白,因为我的 conf 的缩进很好。 然后我意识到这是因为我的application.yml的编码是“ Microsoft 的东西”(由 IntelliJ 建议,记不清了)。 我只是复制了我的 conf,将其粘贴到 SublimeText 中,删除了我的application.yml ,然后重新创建了一个具有相同名称的新文件(即application.yml ),复制了 SublimeText 中的内容,然后将其粘贴到了我的新文件中。 显然默认编码解决了这个问题。

我有同样的问题并且已经解决了。 如果 application.yml 文件做得好,您可以尝试清空您的 maven 存储库(在 Maven/repository)。然后在您的项目中执行 maven update 并再次运行它。

我不确定第二个search-paths ,我认为你错误地把它放在那里。 但是对于第 17 和 18 行中的错误消息,这是一个简单的解决方法:

在包含 uri 的行中添加另一个破折号,使其看起来像这样:

repos:
        perf:
          pattern: 
            - */perf ##as it was trying to match the whole pattern
            - uri: https://github.com/rseroter/pluralsight-spring-cloudconfig-wa-tolls-perf

后面的内容pattern:应该是一个列表,您需要在项目前加上-

我遇到了类似的问题......原因之一是没有在 yaml 文件中提供适当的间距。 我已经解决如下 -

例子 -

incorrect one ->
    RESERVATION:
      registerHealthIndicator: true
        slidingWindowSize: 100   --> this parameter have unnecessary spaces at beginning

the correct one is ->

    RESERVATION:
      registerHealthIndicator: true
      slidingWindowSize: 100      --> correct as spaces at beginning removed

参考下图 -

在此处输入图片说明

如果其他答案没有帮助并且您像我一样使用 IntelliJ,请尝试重新加载 Gradle 项目,该项目已为我修复。

如果将来其他人对编码有问题,请您检查 application.yml 中的注释

我有一个 grails 应用程序可以正常运行 grails 运行应用程序,但 .war 文件没有运行。

我发现评论中的一个链接导致了下面的异常,即使 yml 没有错误。

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:524)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:473)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:443)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:425)
        at java.lang.Iterable.forEach(Iterable.java:75)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:425)
        at java.lang.Iterable.forEach(Iterable.java:75)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:422)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:321)
        at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:202)
        at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:186)
        at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:176)
        at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:164)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
        at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
        at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
        at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:340)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:304)
        at grails.boot.GrailsApp.run(GrailsApp.groovy:97)
        at grails.boot.GrailsApp.run(GrailsApp.groovy:458)
        at grails.boot.GrailsApp.run(GrailsApp.groovy:445)
        at transporteLegal.Application.main(Application.groovy:11)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:47)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:86)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:57)
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218)
        at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:176)
        at org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:136)
        at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalarNonSpaces(ScannerImpl.java:1861)
        at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalar(ScannerImpl.java:1841)
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchFlowScalar(ScannerImpl.java:1027)
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDouble(ScannerImpl.java:1009)
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:394)
        at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
        at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586)
        at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
        at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
        at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:124)
        at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:236)
        at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:227)
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:215)
        at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:144)
        at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:236)
        at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:227)
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:215)
        at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:144)
        at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:85)
        at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:123)
        at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:547)
        at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:160)
        at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:134)
        at org.grails.config.yaml.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:94)
        at org.grails.config.yaml.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:59)
        at org.grails.config.yaml.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:542)
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:497)
        ... 32 common frames omitted
Caused by: java.nio.charset.MalformedInputException: Input length = 1
        at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        at java.io.InputStreamReader.read(InputStreamReader.java:184)
        at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:125)
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:183)
        ... 62 common frames omitted

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM