Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded

Exception in thread “main” java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/ServletRegistrationBean
这个问题是因为:
在 org.springframework.cloud.netflix.zuul.ZuulConfiguration位置里,引用的是
org.springframework.boot.context.embedded.ServletRegistrationBean这个类,
但是,这个类只有在springboot1.3.5.RELEASE中才有:

 <parent>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-starter-parentartifactId>
  <version>1.3.5.RELEASEversion>
  <relativePath/> 
parent>

但是,我不想引用这个落后的springboot,所以,如何保证引用指向1.5.4呢,引用的zuul类是在Netflix的1.1.0中,猜测这个版本可能与1.5.4不匹配,所以,升级到与1.5.4匹配的版本可能就能解决问题,所以,查看官网最新的是1.4.4,然后进行升级(事实上最后没有使用这个方案,可能是我的IDE的问题,升级后死活找不到jar包,具体报错是 has broken path ,最后干脆直接注释掉1.1.0的启动成功了,但是,如果注释掉,就没有了eureka的客户端发现,所以我想办法引用eureka的client包试试,后来,果然成功,zuul启动成功并成功被eureka所发现):


<dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
   <version>1.4.4.RELEASEversion>
dependency>

demo地址:https://github.com/yangsea/haiyang

注意:1.54的是这个: org.springframework.boot.web.servlet.ServletRegistrationBean;

你可能感兴趣的:(springcloud,zuul)