请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

gateway context-path不生效问题

如题,本来想测试gateway可用性,启动了所有的服务,发现gateway模块在admin中显示down,最后发现是启动的时候,context-path不生效.

http://127.0.0.1/gateway/actuator 404
http://127.0.0.1/actuator  就能访问到

难道就我一个人碰见了这个问题?大家都没问题?
查了一下资料有些人说是新增一个router让自己访问自己…
但是想请教一下老师有没有更好的解决方法

正在回答 回答被采纳积分+3

4回答

提问者 就叫香菜算了 2021-08-01 00:28:42

问题已解决 如图

https://img1.sycdn.imooc.com//szimg/61057a2c09074dec19230902.jpg

1 回复 有任何疑惑可以回复我~
  • 提问者 就叫香菜算了 #1
    gateway不需要context_path并且直接/actuator就行
    回复 有任何疑惑可以回复我~ 2021-08-01 00:29:52
燎丶Trance 2021-09-15 13:47:07

解决方案:


@Bean
public WebFilter contextPathWebFilter(ServerProperties serverProperties) {
    String contextPath = serverProperties.getServlet().getContextPath();    
    return (exchange, chain) -> {
        ServerHttpRequest request = exchange.getRequest();        
        if (request.getURI().getPath().startsWith(contextPath)) {            
        return chain.filter(
                exchange.mutate()
                .request(request.mutate().contextPath(contextPath).build())
                .build());
        }        return chain.filter(exchange);
    };
}


在请求的时候, 添加上去

0 回复 有任何疑惑可以回复我~
提问者 就叫香菜算了 2021-07-31 23:27:57

另外附上一张gateway启动截图以及能被admin监控到的服务截图(拜谢)

https://img1.sycdn.imooc.com//szimg/61056bc409fab13925600705.jpg

https://img1.sycdn.imooc.com//szimg/61056bc40992d32125100644.jpg


0 回复 有任何疑惑可以回复我~
  • 提问者 就叫香菜算了 #1
    原因我是知道了,因为webflux没有DispatchServlet,所以当然就不支持ContextPath,那这要咋做才能让admin监控到了
    回复 有任何疑惑可以回复我~ 2021-07-31 23:34:34
提问者 就叫香菜算了 2021-07-31 23:20:03

其实主要想解决的是想把gateway和admin整合成功,代码直接复制的还是不行,感觉是不是因为就是因为前面没有项目名称,所以admin就没有监控到

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信