Я ищу помощи с проблемой, с которой я столкнулся с Zuul, который не работает с Tomcat, упакованным в WAR.
В автономном режиме он работает отлично, но когда я меняю упаковку на войну и развертываю на Tomcat, запросы, похоже, не доходят до Zuul.
Я расширил SpringBootServletInitializer и переопределил метод configure(), но это не помогает.
Примечание: НЕ советуйте мне запускать SpringBoot отдельно со встроенным Tomcat — это не работает, так как мне нужно включить шлюз API в существующую инфраструктуру. Другими словами, мне нужно реализовать шлюз с учетом граничного условия - он должен быть развернут на сервере приложений Tomcat.
@SpringBootApplication
@EnableZuulProxy
public class GatewayApplication extends SpringBootServletInitializer {
...
@override
protected StringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(GatewayApplication.class);
}
}
приложение.yml
zuul:
routes:
freebeer:
path: "/beer/**"
url: "https://freedom.com:443"
default:
path: "/**"
url: "http://landing.com/"
Он отлично работает, когда я запускаю отдельное приложение со встроенным Tomcat, например: a> прекрасно перенаправляется на http://landing.com/, а также ..:8080/beer красиво перенаправлены на Freedom.com
Но в случае развертывания WAR на Tomcat - ничего не работает: - запрос на http(s)://tomcat.intranet.com:12345 приветствует меня сообщением, что там ничего нет и предлагает добавить веб-контент - запрос на http(s) ://tomcat.intranet.com:12345/beer выдает мне 404 с сообщением о том, что исходный сервер не нашел текущего представления для целевого ресурса или что он не желает раскрывать его существование.
Похоже, я упускаю что-то очень очевидное. Но у меня не хватило терпения разобраться и позвать на помощь :)