SpringBoot启动yaml报错的解决
SpringBoot启动yaml报错
报错不到org.yaml⾥的⼀个⽅法
10:45:54.742 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: org.ScalarStyle()Lorg/yaml/snakeyaml/DumperOptions$ScalarStyle;
at org.v.OriginTrackedYamlLoader$KeyScalarNode.<init>(OriginTrackedYamlLoader.java:127)
at org.v.(OriginTrackedYamlLoader.java:138)
at org.v.(OriginTrackedYamlLoader.java:133)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
at java.util.pyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.llect(ReferencePipeline.java:566)
at org.v.placeMappingNodeKeys(OriginTrackedYamlLoader.java:99)
at org.v.structObject(OriginTrackedYamlLoader.java:92)
at org.structDocument(BaseConstructor.java:161)
at org.Data(BaseConstructor.java:127)
at org.yaml.snakeyaml.(Yaml.java:547)
at org.springframework.fig.YamlProcessor.process(YamlProcessor.java:160)
at org.springframework.fig.YamlProcessor.process(YamlProcessor.java:134)
at org.v.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:75)
at org.v.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)
at org.t.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:574)
at org.t.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:528)
at org.t.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:502)
at org.t.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:469)
at org.t.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:450)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.t.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:449)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.t.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:446)
at org.t.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:334)
at org.t.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:209)
at org.t.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:192)
at org.t.ApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:179) at org.t.ApplicationEvent(ConfigFileApplicationListener.java:165)
at t.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at t.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at t.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at t.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
at org.t.vironmentPrepared(EventPublishingRunListener.java:75)
at org.springframework.vironmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
解决
核对了下引⼊的包,发现项⽬中额外引⼊了1.19版本的org.yaml.snakeyaml包,这个包⾥确实没有这个⽅法。把这个包改成1.26的即可。
SpringBoot配置⽂件l遇到的坑
1.第⼀个坑
原代码:
username:root
password:123456
项⽬启动报以下异常:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning a simple key
产⽣问题的根源:l⽂件键、值对之间要⽤冒号:隔开,⽽且冒号和值之间有⼀个空格
上述异常产⽣的就是键后⾯的:号紧接着写值,没有留⼀个空格。
解决办法:
冒号:后⾯留出⼀个空格后再写值
2.第⼆个坑
原代码参见下图:
项⽬启动以后报以下异常:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
或
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
expected <block end>, but found '<block mapping start>'
in 'reader', line 11, column 3:
jpa:
spring怎么读取yaml
产⽣问题的根源:l⼀级键,空⼀格写就可以了。像Jpa这样是⼀级键,下属的database是⼆级键。解决办法:
Jpa向左前进⼀格到中间箭头的⽅位即可。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论