由于未找到`HttpServletRequest`类,因此@EnableZuulProxy不起作用

时间:2018-08-13 11:55:10

标签: java spring-boot microservices netflix-zuul

我正在为我的微服务编写一个启用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时,这种解决方案应该是可行的。

由于我正在使用从https://spring.io导入的spring-boot应用程序,因此它巩固了我在使用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注释了API网关类。

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

  

编辑:当我更改   1. spring-starter-parent改为 1.5.3RELEASE (而不是最新版本)。   2. spring-cloud.version Finchley.SR1 Edgware.SR2 。我完全没有问题。

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

1 个答案:

答案 0 :(得分:1)

我已尝试简化您的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链接吗?