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 中实时标红缩进错误,优先对照提示行修正。
标签
yamlspring