Я пишу шлюз API с поддержкой Zuul для своих микросервисов,
Однако при запуске микросервиса, содержащего zuul, я получаю указанную ниже ошибку.
Error: Caused by: java.lang.ClassNotFoundException:javax.servlet.http.HttpServletRequest
После многочисленных поисков я нашел ниже два решения, которые мне не помогают. Значит, я здесь
Apache tomcat facet. Это почему-то отключено в Dynamic web module 3.0.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-parentto 1.5.3RELEASE instead of the latest. 2.spring-cloud.versionto Edgware.SR2 from Finchley.SR1. I face no issue at all.
Я думаю, это последняя весенняя вещь? Какие-нибудь мысли!
Как вы запускаете приложение? Из IDE или командной строки?
@galovics из IDE
А как насчет запуска приложения с maven? mvn spring-boot:run




Я попытался упростить вашу помпу, и у меня не возникло никаких проблем.
<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 для вашего исходного кода
какую версию с пружинным стартером-родителем вы использовали?
1.5.3.RELEASE и 2.0.0.RELEASE
Может быть проблема с несколькими версиями одних и тех же зависимостей?
Трудно найти зависимости, упомянутые в вашем pom.xml. Это показывает ошибку, что банки неправильно используются при создании maven.
spring-cloud-starter-zuul/eureka присутствуют с весной 1.5.3. Они несовместимы с Spring 2.0.3. Как я уже упоминал, мой код уже подходит для Spring 1.5.3. Думаю, с весной 2.0.3 что-то не так.
Можете ли вы попробовать с последней версией 2.0.4.RELEASE, если у вас все еще возникают проблемы, вы должны поднять заявку с командой Spring Тем временем, не могли бы вы поместить свой код в концентратор git, чтобы я мог посмотреть
Привет, Вивек. Взгляните на github.com/sagar-patro/demo-microservices/tree/master/before /…
Вероятно, поврежденная загрузка JAR. Можно стереть всю вашу папку
/.m2/repositoryили попытаться найти конкретную банку (ы), я бы лично просто удалил папкуorg.springframeworkи запустилmvn installили могу запуститьmvn dependency:purge-local-repository