Zuul Proxy НЕ работает на Tomcat и SpringBootServlet

Я ищу помощи с проблемой, с которой я столкнулся с 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 с сообщением о том, что исходный сервер не нашел текущего представления для целевого ресурса или что он не желает раскрывать его существование.

Похоже, я упускаю что-то очень очевидное. Но у меня не хватило терпения разобраться и позвать на помощь :)


person Milkywayfarer    schedule 08.05.2020    source источник
comment
Нет идей? Может быть, мне нужно либо переименовать war в ROOT.war, либо изменить URL-адрес в браузере? :)   -  person Milkywayfarer    schedule 09.05.2020


Ответы (1)


Решено. Запросы просто отправлялись в неправильный контекст — в корень сервера приложений, а не в конкретное веб-приложение. Я решил это, назвав войну как ROOT.war

person Milkywayfarer    schedule 10.05.2020