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包排除干净。

相关推荐
User_芊芊君子8 分钟前
跨平台开发选Java还是C?应用场景与性能深度对比
java·c语言·开发语言
寻梦人121388 分钟前
关于在Spring Boot + SpringSecurity工程中Sercurity上下文对象无法传递至新线程的问题解决
java·spring boot·后端
一只小松许️1 小时前
Rust泛型与特性
java·开发语言·rust
angushine6 小时前
Gateway获取下游最终响应码
java·开发语言·gateway
爱的叹息6 小时前
关于 JDK 中的 jce.jar 的详解,以及与之功能类似的主流加解密工具的详细对比分析
java·python·jar
一一Null6 小时前
Token安全存储的几种方式
android·java·安全·android studio
AUGENSTERN_dc7 小时前
RaabitMQ 快速入门
java·后端·rabbitmq
晓纪同学7 小时前
C++ Primer (第五版)-第十三章 拷贝控制
java·开发语言·c++
小样vvv7 小时前
【源码】SpringMvc源码分析
java