采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
把 这个去掉才走谓词工厂,但这样就找不到服务的路径了
我今天也遇到了谓词不生效的问题,结果发现是路径问题
可以检查一下访问路径
(X 错误的路径) http://localhost:8040/user-center/users/1
(√ 正确的路径) http://localhost:8040/users/1
是的,给您点赞! http://localhost:8040/user-center/users/1 这条路由是由locator.discovery.enabled=true控制的,不是由我们自定义的路由控制的,所以。其实视频路由谓词工厂一节,有对照手记强调过^_^ 祝您学习愉快!
同学 你解决了吗 我这也是 谓词和过滤器都不起作用
建议将代码共享到github,并附带上完整的复现流程,我来看看哈。
让它走自定义的routes,就会走谓词和过滤器。具体原因我也不知道
你配置表达的含义是:当且仅当你访问的是 $GATEWAY_URL/order-service/** 并且TimeBetween条件符合,才会访问到 order-service的/**
排查思路,建议如下:
访问路径是否正确,看下上面的URL
你的谓词工厂是否被实例化了(可以在谓词工厂的方法内打个断点,如果实例化了,会有对号的标记);
更大的可能性,你的谓词工厂代码有问题。可以参考下课上的代码。https://git.imooc.com/coding-358/gateway/src/master/src/main/java/com/itmuch/gateway/TimeBetweenRoutePredicateFactory.java 。需要注意的是,类名必须以RoutePredicateFactory结尾,并且类上必须有@Component注解。
yaml缩进是否正确。
登录后可查看更多问答,登录/注册
面向未来微服务:熟练掌握Spring Cloud Alibaba
559 4
2.0k 1
2.6k 2
1.7k 3
3.6k 13