@EnableZuulProxy не работает из-за того, что класс `HttpServletRequest` не найден

Я пишу шлюз API с поддержкой Zuul для своих микросервисов, Однако при запуске микросервиса, содержащего zuul, я получаю указанную ниже ошибку.

Error: Caused by: java.lang.ClassNotFoundException:javax.servlet.http.HttpServletRequest

После многочисленных поисков я нашел ниже два решения, которые мне не помогают. Значит, я здесь

  1. Включите Apache tomcat facet. Это почему-то отключено в Dynamic web module 3.0.
  2. Создание кастомного dispatcher servlet. Но это решение должно быть осуществимым при использовании сервлета 2.5.

Поскольку я использую приложение с весенней загрузкой, импортированное из https://spring.io, оно подтверждает, что я использую servlet 3.0.

Мой API-шлюз pom.xml:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

Я аннотировал свой класс шлюза API с помощью @EnableZuulProxy.

Сказав это, не могли бы вы помочь мне с моей ошибкой, указанной выше.

Edit: When I change the 1. spring-starter-parent to 1.5.3RELEASE instead of the latest. 2. spring-cloud.version to Edgware.SR2 from Finchley.SR1. I face no issue at all.

Я думаю, это последняя весенняя вещь? Какие-нибудь мысли!

Вероятно, поврежденная загрузка JAR. Можно стереть всю вашу папку /.m2/repository или попытаться найти конкретную банку (ы), я бы лично просто удалил папку org.springframework и запустил mvn install или могу запустить mvn dependency:purge-local-repository

Darren Forsythe 13.08.2018 14:01

Как вы запускаете приложение? Из IDE или командной строки?

galovics 23.08.2018 22:35

@galovics из IDE

bibliophilsagar 24.08.2018 08:25

А как насчет запуска приложения с maven? mvn spring-boot:run

galovics 25.08.2018 10:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
4
1 214
1

Ответы 1

Я попытался упростить вашу помпу, и у меня не возникло никаких проблем.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

Сообщите мне, что после установки этой зависимости она все еще не работает. Можете ли вы также предоставить ссылку на githhb для вашего исходного кода

какую версию с пружинным стартером-родителем вы использовали?

bibliophilsagar 29.08.2018 15:19

1.5.3.RELEASE и 2.0.0.RELEASE

Vivek Shukla 29.08.2018 15:23

Может быть проблема с несколькими версиями одних и тех же зависимостей?

Wesley De Keirsmaeker 29.08.2018 15:46

Трудно найти зависимости, упомянутые в вашем pom.xml. Это показывает ошибку, что банки неправильно используются при создании maven.

bibliophilsagar 30.08.2018 07:54
spring-cloud-starter-zuul/eureka присутствуют с весной 1.5.3. Они несовместимы с Spring 2.0.3. Как я уже упоминал, мой код уже подходит для Spring 1.5.3. Думаю, с весной 2.0.3 что-то не так.
bibliophilsagar 30.08.2018 08:43

Можете ли вы попробовать с последней версией 2.0.4.RELEASE, если у вас все еще возникают проблемы, вы должны поднять заявку с командой Spring Тем временем, не могли бы вы поместить свой код в концентратор git, чтобы я мог посмотреть

Vivek Shukla 30.08.2018 09:31

Привет, Вивек. Взгляните на github.com/sagar-patro/demo-microservices/tree/master/before‌ /…

bibliophilsagar 30.08.2018 13:43

Другие вопросы по теме