我正在寻求与Zuul面对的问题的帮助,该问题不适用于将Tomcat打包到WAR中的问题。
Standalone,它工作得很好,但是当我改变包装以进行战争并部署到Tomcat时,请求似乎没有到达Zuul。]
我已经扩展了SpringBootServletInitializer并重写了configure()方法,但这无济于事。
注
:请不要建议我在嵌入式Tomcat上独立运行SpringBoot-这不起作用,因为我需要将API网关合并到现有的基础架构设置中。换句话说,我需要在给定边界条件的情况下实现网关-必须将其部署在Tomcat应用程序服务器上。@SpringBootApplication @EnableZuulProxy public class GatewayApplication extends SpringBootServletInitializer { ... @override protected StringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(GatewayApplication.class); } }
application.yml
zuul: routes: freebeer: path: "/beer/**" url: "https://freedom.com:443" default: path: "/**" url: "http://landing.com/"
[当我运行带有嵌入式Tomcat的独立应用程序时,它运行得很好,例如:-对http://localhost:8080/的请求很好地重定向到http://landing.com/-以及..:8080 / beer都很好地重定向到Liberty.com
但是如果将WAR部署到Tomcat,则无效:-请求http(s)://tomcat.intranet.com:12345向我发送消息,提示没有任何内容,并建议添加Web内容-请求http(s)://tomcat.intranet.com:12345 / beer给我404消息,即原始服务器找不到目标资源的当前表示形式,或者它不愿意透露存在的一种表示形式]
好像我缺少了很明显的东西。但是我已经没有足够的耐心来解决这个问题并呼吁帮助:)
我正在寻求与Zuul面对的问题的帮助,该问题不适用于将Tomcat打包到WAR中的情况。独立运行效果很好,但是当我将包装改为战争并部署到...
已解决。只是将请求发送到错误的上下文-发送到应用服务器根目录,而不是特定于Web应用程序。我通过将war命名为ROOT.war解决了它