[Spring-Cloud-Gateway] 启动网关服务时报:"org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here"

1 问题描述

  • spring-cloud-gateway网关服务的关键配置信息

配置信息

# ...
spring:
  cloud:
    loadbalancer:
      ribbon: # 使用 ReactiveLoadBalancerClient 时通过本参数禁用调 ribbon
        enabled: false
    gateway:
      actuator:
        verbose:
          enabled: true
      httpclient:
        max-header-size: 65565
      discovery:
        locator:
          # 是否和服务注册与发现组件结合,设置为 true 后可以直接使用应用名称调用服务 / true: 开启自动路由,以服务id建立路由,服务id默认大写
          enabled: true
          # 服务id 设置为小写
          lower-case-service-id: false
      routes:
      #- id: data2api-proxy-facade-route
      #  predicates:
      #    - Path=/bdp/public/api/V1/data2api/**
      #  uri: lb://bdp-gateway-service
      #  filters:
      #    - StripPrefix=5
      #    - PrefixPath=/bdp/public/api/V1/bdp-gateway-service/data2api/

      #- id: baidu-route
      #  predicates:
      #    - Path=/baidu/s
      #  filters:
      #    - StripPrefix=1
      #  uri: https://baidu.com

      #- id: data-service-swagger-route
      #  predicates: Path=/swagger/data-service/**
      #  uri: http://127.0.0.1:18200
      #  filters:
      #    - StripPrefix=2

      #- id: test-route
      #  uri: http://localhost:18100
      #  predicates:
      #    - Path=/mbasic/{number}/**
      #  filter:
      #    - AddRequestHeader=x-request-test, Blue-{number}
      #    - AccessLog
      #    - AccessLogGatewayFilterFactory
      #    - name: AccessLog
      #      args:
      #        value: data-service-swagger-bootstrap-ui1
      #    - name: AccessLogGatewayFilterFactory
      #      args:
      #        value: data-service-swagger-bootstrap-ui2

      #- id: data-service-route
      ##  uri: lb://bdp-data-service
      #  predicates:
      #    - Path=/bdp/public/api/{api-version}/data2api/**
      #  filters:

      # 统一(通用)数据执行服务
      # 1) 服务原始地址 : http://xx.xx.xx.xx:pppp/data-executor-service/V1/execute/executeTask/{task-service-uri}/{version}
      # 2) 代理后开放地址 : http(s)://bdp-gateway-service-uri/data-executor-service/V1/execute/executeTask/{task-service-uri}/{version}
      - id: bdp-data-executor-service
          uri: lb://bdp-data-executor-service
          predicates:
            - Path=/data-executor-service/**
          filters:
            - StripPrefix=0
      default-filters:

# ...
  • 启动网关服务时报错:
...
org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
 in 'reader', line 69, column 14:
              uri: lb://bdp-data-executor-service
                 ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:870) ~[snakeyaml-1.26.jar!/:?]
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:358) ~[snakeyaml-1.26.jar!/:?]
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227) ~[snakeyaml-1.26.jar!/:?]
	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558) ~[snakeyaml-1.26.jar!/:?]
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[snakeyaml-1.26.jar!/:?]
...

2 问题分析 & 解决方法

  • 配置映射不允许在这,需要对齐

  • yml文件的格式要正确:

  • 每个冒号的后面要紧跟空格(13行在id:加一个空格即可)
  • 每个缩进相对于上一级,需要缩进2个空格本次错误的直接原因
  • 一个正确的demo

from 网友

X 参考文献

posted @ 2023-09-01 10:42  千千寰宇  阅读(149)  评论(0编辑  收藏  举报