Zuul Proxy НЕ работает на Tomcat vai SpringBootServlet - PullRequest
0 голосов
/ 09 мая 2020

Я ищу помощь с проблемой, с которой я столкнулся с 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);
}
}

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 красиво перенаправляется на freedom.com

Но в случае развертывания WAR в Tomcat - ничего не работает: - запрос на http (s): //tomcat.intranet.com: 12345 приветствует меня сообщением о том, что там ничего нет, и предлагает добавить веб-контент - запрос на http (s): // tomcat.intr anet .com: 12345 / beer дает мне 404 с сообщением о том, что исходный сервер не нашел текущего представления для целевого ресурса или что он не желает раскрывать, что оно существует

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

1 Ответ

0 голосов
/ 10 мая 2020

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

...