博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring boot ---- java.lang.NoClassDefFoundError: javax/servlet/ServletContext
阅读量:6189 次
发布时间:2019-06-21

本文共 1551 字,大约阅读时间需要 5 分钟。

 

场景描述

项目中用到spring boot进行带页面的开发,从github上的simples中下载了对应的spring-boot-sample-web-jsp项目,经简单修改之后死活启动不起来,各种异常。spring-boot以简单容易上手为核心宗旨,可为什么在引入jar时就会出现这么多问题呢?

异常信息

异常一:

2016-06-17 11:04:14.216 ERROR 4684 --- [ main] o.s.boot.SpringApplication : Application startup failed java.lang.NoClassDefFoundError: javax/servlet/ServletContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) at java.lang.Class.getDeclaredMethods(Class.java:1855)

很显然,这是没有找到ServletContext类导致的,于是乎,异想天开的添加了servlet-api的jar包。 

添加之后,出现异常二:

2016-06-17 11:06:13.860 ERROR 224 --- [ main] o.s.boot.SpringApplication : Application startup failed org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

在网上搜索了各种此异常的解决方案都没有解决成功。

解决方案

在经过多次尝试,几乎要放弃的时候,突然想到一个问题,会不会是因为Intellij集成maven引入jar包时scope设置的问题。

仔细检查pom文件,发现问题可能出现在一下两个地方:

org.springframework.boot
spring-boot-starter-tomcat
1.2.3.RELEASE
provided
org.apache.tomcat.embed
tomcat-embed-jasper
7.0.68
provided

注释掉两个配置中的

provided

问题就这么解决了。

总结

这可能是Intellij的一个bug,在使用spring-boot的时候,如果把某个引入的依赖设置为provided,那么在Intellij启动时就会找不到相应的类。因此,此时需要把此项配置给注释掉,但是打包上线的时候并不需要这些依赖,那么在打包的时候就把注释打开,即可。

 

微信扫描二维码,关注我的公众号微信扫描二维码,关注我的公众号

 

转载地址:http://yzoda.baihongyu.com/

你可能感兴趣的文章
斯坦福机器学习课程笔记(第五讲)
查看>>
spark性能测试理论-Benchmark(转)
查看>>
ukulele弹奏模拟器v1.0(待完善)
查看>>
字符串
查看>>
OpenStack的基本概念与架构图
查看>>
[NOI2016]优秀的拆分&&BZOJ2119股市的预测
查看>>
HDU 4452 Running Rabbits 模拟
查看>>
UVA 10089 Repackaging 数学问题
查看>>
Grunt的配置和使用
查看>>
The user specified as a definer ('root'@'%') does not exist解决
查看>>
window10下用ZIP压缩包安装 mysql 8.0.11
查看>>
用友实习总结
查看>>
FPGA开发心得
查看>>
socket学习笔记——select函数的使用(windows)
查看>>
CentOS 6.5下samba服务器搭建与配置
查看>>
CentOS 6.5开放端口方法
查看>>
Java 内存分配策略
查看>>
[Todo] Nodejs学习及Spider实验(包括php入门学习、React入门学习)
查看>>
笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法
查看>>
【转】百度面试
查看>>