spring cloud gateway异常索引错误的权限中存在非法字符

标签 spring spring-boot spring-cloud netflix-eureka spring-cloud-gateway

我正在尝试为 api 设置 spring 云网关,但看到路由 uri 出现非法参数异常。任何帮助表示赞赏。

在 Ubuntu 上运行这个应用程序,我在 Spring boot 2.1.4 和 2.1.5 上都遇到了同样的异常。

这就是在网关应用程序中配置我的 application.properties 文件的方式。

eureka.client.serviceUrl.defaultZone = http://localhost:8761/eureka
spring.application.name= api-gateway
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.discovery.locator.lowerCaseServiceId=true
spring.cloud.gateway.routes[0].id=reporting-service
spring.cloud.gateway.routes[0].uri = lb://reporting-service
spring.cloud.gateway.routes[0].predicates[0]=Path=/api/reporting/**

这是我看到的异常(exception)。

2019-06-06 09:56:17.304  WARN 4561 --- [           main] onfigReactiveWebServerApplicationContext : Exception encountered during context initializ                                                ation - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'eurekaAutoServiceRegistration';                                                 nested exception is reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IllegalArgumentException: Illegal character in authority at in                                                dex 5: lb://REPORTING-SERVICE
2019-06-06 09:56:17.316  INFO 4561 --- [           main] com.netflix.discovery.DiscoveryClient    : Shutting down DiscoveryClient ...
2019-06-06 09:56:20.317  INFO 4561 --- [           main] com.netflix.discovery.DiscoveryClient    : Unregistering ...
2019-06-06 09:56:20.324  INFO 4561 --- [           main] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_API-GATEWAY/apitest.****.*****.com:api-gateway:8080 - deregister  status: 200
2019-06-06 09:56:20.342  INFO 4561 --- [           main] com.netflix.discovery.DiscoveryClient    : Completed shut down of DiscoveryClient
2019-06-06 09:56:20.353  INFO 4561 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-06-06 09:56:20.365 ERROR 4561 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Failed to start bean 'eurekaAutoServiceRegistration'; nested exception is reactor.core.Ex                                                ceptions$ErrorCallbackNotImplemented: java.lang.IllegalArgumentException: Illegal character in authority at index 5: lb://REPORTING-SERVICE
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185) ~[spring-context-5.1.6.RELEAS                                                E.jar!/:5.1.6.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53) ~[spring-context-5.1.6.RELE                                                ASE.jar!/:5.1.6.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360) ~[spring-context                                                -5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158) ~[spring-context-5.1.6.REL                                                EASE.jar!/:5.1.6.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122) ~[spring-context-5.1.6.RELE                                                ASE.jar!/:5.1.6.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:893) ~[spring-context-5.1.                                                6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.finishRefresh(ReactiveWebServerApplicationContext.jav                                                a:121) ~[spring-boot-2.1.4.RELEASE.jar!/:2.1.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552) ~[spring-context-5.1.6.RELE                                                ASE.jar!/:5.1.6.RELEASE]
    at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:67)                                                 ~[spring-boot-2.1.4.RELEASE.jar!/:2.1.4.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.4.RELEASE.jar!/:2.1.4.RELEASE]

最佳答案

修复属性:

spring.cloud.gateway.routes[0].predicates=Path=/api/reporting/**

spring.cloud.gateway.routes[0].uri=lb://reporting-service

引用:issue-56480485

关于spring cloud gateway异常索引错误的权限中存在非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480485/

相关文章:

java - Websphere 8.5.5 UTF-8 编码问题

java - 让一个 Spring bean 继承另一个 Spring bean 是一种好的做法吗?

spring - 运行 bootRun 并使用不同的 application.properties 文件

java - 在没有 Git 存储库的情况下使用 Spring Cloud Config

java - 为什么 ant 中的 javac 使用不兼容的类型构建脚本错误

使用@JsonFilter 时,带有 Jackson 的 Spring RestTemplate 抛出 "Can not resolve BeanPropertyFilter"

spring - 如何在 Spring Boot 2.1.0 登录时禁用 Set-Cookie header 上的 HttpOnly 标志

java - 在 Spring Boot gradle 中配置嵌入式 tomcat 上下文 docBase 和路径

java - 在 Spring redis session 中保存对象时出现 ClassCastException

angular - Spring云服务- Eureka