启动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-CENTER | n/a (1) | (1) | UP (1) - DESKTOP-53NTMC1:emos-schedule-center:8030 |
EMOS-USER-CENTER | n/a (1) | (1) | UP (1) - emos-user-center:8010 |