idea启动服务报错Application run failed

现象是这样,在宝兰德部署报错: NoClassDefFoundError: org/apache/tomcat/util/codec/binary/Base64

本地启动报错:Application run failed:Failed to parse configuration class [***.WebApplication]; nested exception is java.lang.IllegalStateException:Failed to introspect annotated methods on class org.springframework.boot.web.servlet.support.SpringBootServletInitializer

以及从Caused by : java.lang.ClassNotFOUNDeXCEPTION : JAVAX.SERVLET.

java.lang.ClassNotFoundException : Javax.servlet.ServletContext

下面是报错的部分截图

‌Maven中的scope元素用于定义依赖项的作用范围,它决定了依赖项在项目构建的不同阶段(如编译、测试、运行)的可用性。‌

Maven中的Scope类型及其用途

‌compile‌:这是默认值,表示被依赖包需要参与当前项目的编译、测试和运行阶段,通常会被包含在最终的打包文件中。例如,JUnit库通常使用compile范围,因为它需要在编译和运行时都可用‌12。

‌provided‌:这种范围的依赖项在编译和测试阶段可用,但在运行时不需要。通常用于服务器提供的库,如Servlet API,因为服务器已经提供了这些库,不需要在应用中再次包含‌23。

‌runtime‌:这种范围的依赖项在运行时可用,但不参与编译。适用于那些在编译时不需要但在运行时必须的库,如JDBC驱动。这种范围可以减少编译时间并避免不必要的依赖‌23。

‌test‌:这种范围的依赖项仅在测试阶段可用,不会被包含在最终的打包文件中。适用于测试框架和测试相关的库‌23。

‌system‌:这种范围的依赖项从本地系统路径获取,通常用于那些不在Maven仓库中的库。需要指定本地路径‌23。

‌import‌:这种范围用于POM继承,允许一个POM文件继承另一个POM文件中的依赖管理配置‌2。

Scope的使用场景和示例

‌compile‌:适用于所有阶段需要的库,如JUnit。

‌provided‌:适用于服务器提供的库,如Servlet API。

‌runtime‌:适用于运行时需要的库,如JDBC驱动。

‌test‌:适用于测试阶段的库,如JUnit测试框架。

‌system‌:适用于本地系统路径的库,如某些特定硬件相关的库。

‌import‌:适用于POM继承,简化依赖管理。

本地环境启动的修改scope

修改spring-boot-starter-tomcat的scope属性

将上面图片中的scope这行注释掉。然后刷新一些maven,就可以启动了。
这里是因为宝兰德打包的时候需要排除这个jar包,但是idea里面用的是tomcat,所以不能排除这个jar包。对于打包到宝兰德中间件的时候,需要这个中间件单独的jar包,需要用宝兰德的那个jar包来替换这个jar包。(也就是将这个包排除掉,然后再引入宝兰德的jar包。)

打包的时候要排除tomcat的一些包的依赖,但是没有去干净。对于引用的其它的jar包或者本地的maven项目要把jar包排除干净。

相关推荐
Rysxt_21 分钟前
Spring Boot 集成 Spring AI OpenAI Starter 教程
java·spring boot·后端·ai
青云交33 分钟前
Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
java·大数据·智能家居·边缘计算·户型适配·行为挖掘·场景联动
AAA修煤气灶刘哥40 分钟前
ES 高级玩法大揭秘:从算分骚操作到深度分页踩坑,后端 er 速进!
java·后端·elasticsearch
江团1io044 分钟前
深入解析MVCC:多版本并发控制的原理与实现
java·经验分享·mysql
树码小子1 小时前
Java网络编程:(socket API编程:UDP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·udp
君宝1 小时前
Linux ALSA架构:PCM_OPEN流程 (二)
java·linux·c++
云深麋鹿1 小时前
数据链路层总结
java·网络
fire-flyer1 小时前
响应式客户端 WebClient详解
java·spring·reactor
北执南念1 小时前
基于 Spring 的策略模式框架,用于根据不同的类的标识获取对应的处理器实例
java·spring·策略模式
王道长服务器 | 亚马逊云1 小时前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws