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.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<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所发现):
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
demo地址:https://github.com/yangsea/haiyang
注意:1.54的是这个: org.springframework.boot.web.servlet.ServletRegistrationBean;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)