java
技术随笔
Expecting a 'Mapping' node but got ''如何解决
报错
Exception in thread "main" org.yaml.snakeyaml.scanner.ScannerException:
while scanning a simple key ... Expecting a 'Mapping' node but got ''这是 YAML 常见的缩进/对齐错误。YAML 以缩进表达层级,子节点必须与父节点严格对齐;冒号后必须有空格;同一层级缩进量必须一致。
典型错误示例
下面这段 spring 下的 application: 与 name: 缩进错乱:
spring:
application:
name: microservicecloud-dept
datasource:
type: com.alibaba.dreid.pool.DruidDataSource
driver-class-name: org.gjt.mm.mysql.Driver
url: jdbc:mysql://localhost:3306/cloudDB01
username: root
password: hannong
dbcp2:
min-idle: 5
initial-size: 5
max-total: 5
max-wait-millis: 200修正
保证同一层级的键左对齐,冒号后留一个空格:
spring:
application:
name: microservicecloud-dept
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.gjt.mm.mysql.Driver
url: jdbc:mysql://localhost:3306/cloudDB01
username: root
password: hannong
dbcp2:
min-idle: 5
initial-size: 5
max-total: 5
max-wait-millis: 200排查要点
- 报错位置附近检查缩进,统一使用空格(不要 Tab 与空格混用)。
- 每个
key:冒号后必须有一个空格再写值。 - IDE(如 IDEA)会在 YAML 中实时标红缩进错误,优先对照提示行修正。