首页 > 解决方案 > 由于找不到`HttpServletRequest`类,@EnableZuulProxy 不起作用

问题描述

我正在Zuul为我的微服务编写一个启用的 API 网关,但是在启动包含的微服务zuul时,我收到了下面提到的错误

错误:原因:java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest

经过多次搜索,我发现以下两种对我没有帮助的解决方案。因此我在这里

  1. 启用Apache tomcat facet. 由于某种原因,这在Dynamic web module 3.0.
  2. 创建自定义dispatcher servlet. 但是当我们使用 servlet 2.5 时,这个解决方案应该是可行的。

由于我使用的是从 导入的 spring-boot 应用程序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>

我已经用@EnableZuulProxy.

说了这些,请您帮我解决上面突出显示的错误。

编辑:当我将 1. 更改spring-starter-parent1.5.3RELEASE而不是最新的。2.从Finchley.SR1spring-cloud.versionEdgware.SR2。我完全没有问题。

我猜这是最新的春天的东西?有什么想法吗!

标签: javaspring-bootmicroservicesnetflix-zuul

解决方案


我已尝试简化您的 pom,但没有遇到任何问题。

        <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 链接吗


推荐阅读