zoukankan      html  css  js  c++  java
  • EL1041E: After parsing a valid expression, there is still more data in the expression

    在使用Spring Cloud Gateway的时候,路由信息是根据DiscoveryClient自动生成的,现在要给自动生成的路由信息统一添加Predicate和Filter。配置如下所示:
    application.yml

    spring: 
      cloud: 
        gateway: 
          discovery:
            locator:
              enabled: true
              predicates:
              - name: Path
                args:
                  pattern: "'/'+serviceId+'/test'"
              filters: 
              - name: RedirectTo
                args:
                  status: 301
                  url: http://www.xinyues.com
    

    这个时候,网关服务启动是没有问题的,但是在浏览器中输入获取所有路由信息时,报下面的异常:

    2019-10-26 16:40:40 ERROR org.springframework.core.log.CompositeLog.error(CompositeLog.java:117) - [d04837fc] 500 Server Error for HTTP GET "/actuator/gateway/routes" org.springframework.expression.sp
    el.SpelParseException: EL1041E: After parsing a valid expression, there is still more data in the expression: 'colon(:)'
    	at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:135) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:61) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:33) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:52) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:43) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator.getValueFromExpr(DiscoveryClientRouteDefinitionLocator.java:129) ~[spring-cloud-gateway-core-2.1.0.RELEASE.jar:2.1
    .0.RELEASE]
    	at org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator.lambda$getRouteDefinitions$4(DiscoveryClientRouteDefinitionLocator.java:117) ~[spring-cloud-gateway-core-2.1.0.REL
    EASE.jar:2.1.0.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:107) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.tryOnNext(FluxFilterFuseable.java:143) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.tryOnNext(FluxMapFuseable.java:303) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.tryOnNext(FluxFilterFuseable.java:361) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.tryOnNext(FluxMapFuseable.java:303) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxIterable$IterableSubscriptionConditional.slowPath(FluxIterable.java:515) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxIterable$IterableSubscriptionConditional.request(FluxIterable.java:473) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.request(FluxMapFuseable.java:346) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.request(FluxFilterFuseable.java:404) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.request(FluxMapFuseable.java:346) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:185) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:162) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:933) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:82) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onSubscribe(FluxMapFuseable.java:255) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onSubscribe(FluxFilterFuseable.java:299) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onSubscribe(FluxMapFuseable.java:255) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    	at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:135) [reactor-core-3.2.6.RELEASE.jar:3.2.6.RELEASE]
    
    


    欧莱雅男士锐能抗初老护肤套装(元气露+多效霜+眼霜+洁面膏50ml2+面膜10) 视黄醇紧致 洗面奶男

    根据异常信息,可以定位到是url: http://www.xinyues.com配置错误。因为这里配置的信息是需要Spel解析的,如果像上面那样直接配置,会按照Spel语法解析,我们需要的是一个纯字符串值,应该这样配置:url: "'http://www.xinyues.com'"

  • 相关阅读:
    vivado操作基本问题
    IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
    FPGA基础架构总结
    PLL到底是个啥么东西呢?
    CSS-3 Transform 的使用
    CSS-3 box-shadow 的使用
    一些CSS3的乐趣
    CSS-3 文字阴影—text-shadow 的使用
    Jquery 较好的效果
    如何关闭输入法
  • 原文地址:https://www.cnblogs.com/wgslucky/p/11743740.html
Copyright © 2011-2022 走看看