java.lang.NoClassDefFoundError: com/netflix/zuul/ZuulFilter

路裕
2023-12-01

启动zuul服务报错:java.lang.NoClassDefFoundError: com/netflix/zuul/ZuulFilter

由于刚开始研究zuul组件,所以也不知道这个过滤器是属于哪个jar包,虽然知道可能是少了包含这个过滤器的jar包导致的项目启动出错,但是还是研究了一会才解决。

我们使用spring cloud zuul组件的时候,一般需要在引入Eureka的jar包下,还需引入zuul组件的jar包,如下:

    <!-- 引入eureka 客户端依赖 -->
            <dependency>  
        <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-eureka</artifactId>  
        </dependency>  
        
        <!-- 引入Zuul 依赖
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>

        </dependency>-->

然后编写zuul的配置和Eureka的配置:

        zuul:
          routes:
            api-a:
              path: /api-a/**
              serviceId: emos-user-center
      
        zuul.PreRequestLogFilter.pre.disable: true

        eureka:
          client:
            service-url:

              defaultZone: http://user:password@localhost:8020/eureka

然后在启动类上添加注解:

        @EnableZuulProxy

        @SpringCloudApplication

最后启动项目,发现报以上错误,这就是因为包含过滤器的包没有引入

引入如下jar包再启动就可以了:

    <dependency>
            <groupId>com.netflix.zuul</groupId>
            <artifactId>zuul-core</artifactId>
            <version>1.3.0</version>

        </dependency>


EMOS-SCHEDULE-CENTERn/a (1)(1)UP (1) - DESKTOP-53NTMC1:emos-schedule-center:8030
EMOS-USER-CENTERn/a (1)(1)UP (1) - emos-user-center:8010
可以看到zuul的服务也被注册到注册中心了


 类似资料: