SpringBoot啟動yaml報錯
報錯找不到org.yaml里的一個方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
10 : 45 : 54.742 [main] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.NoSuchMethodError: org.yaml.snakeyaml.nodes.ScalarNode.getScalarStyle()Lorg/yaml/snakeyaml/DumperOptions$ScalarStyle; at org.springframework.boot.env.OriginTrackedYamlLoader$KeyScalarNode.<init>(OriginTrackedYamlLoader.java: 127 ) at org.springframework.boot.env.OriginTrackedYamlLoader$KeyScalarNode.get(OriginTrackedYamlLoader.java: 138 ) at org.springframework.boot.env.OriginTrackedYamlLoader$KeyScalarNode.get(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.stream.AbstractPipeline.copyInto(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.stream.ReferencePipeline.collect(ReferencePipeline.java: 566 ) at org.springframework.boot.env.OriginTrackedYamlLoader$OriginTrackingConstructor.replaceMappingNodeKeys(OriginTrackedYamlLoader.java: 99 ) at org.springframework.boot.env.OriginTrackedYamlLoader$OriginTrackingConstructor.constructObject(OriginTrackedYamlLoader.java: 92 ) at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java: 161 ) at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java: 127 ) 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.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java: 75 ) at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java: 50 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java: 574 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java: 528 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java: 502 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java: 469 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$ null $ 6 (ConfigFileApplicationListener.java: 450 ) at java.lang.Iterable.forEach(Iterable.java: 75 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$ 7 (ConfigFileApplicationListener.java: 449 ) at java.lang.Iterable.forEach(Iterable.java: 75 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java: 446 ) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java: 334 ) at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java: 209 ) at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java: 192 ) at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java: 179 ) at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java: 165 ) 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: 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 ) |
解決
核對了下引入的包,發(fā)現(xiàn)項目中額外引入了1.19版本的org.yaml.snakeyaml包,這個包里確實沒有這個方法。把這個包改成1.26的即可。
SpringBoot配置文件application.yml遇到的坑
1.第一個坑
原代碼:
1
2
|
username:root password: 123456 |
項目啟動報以下異常:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning a simple key
產(chǎn)生問題的根源:application.yml文件鍵、值對之間要用冒號:隔開,而且冒號和值之間有一個空格
上述異常產(chǎn)生的就是鍵后面的:號緊接著寫值,沒有留一個空格。
解決辦法:
冒號:后面留出一個空格后再寫值
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:
產(chǎn)生問題的根源:application.yml一級鍵,空一格寫就可以了。像Jpa這樣是一級鍵,下屬的database是二級鍵。
解決辦法:
Jpa向左前進一格到中間箭頭的方位即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://wanghq.blog.csdn.net/article/details/109486222