java.lang.NoClassDefFoundError: TagSupport (JSP相关报错踩坑)
在调试一个HRMS系统的时候,出现
java.lang.NoClassDefFoundError: TagSupport 错误
这个错误见过,就是少了jsp-api.jar。于是,从maven仓库下载了这个jar包之外,还把web项目相关jsp的三个jar也补上了(下面附pom)
<!-- jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- jsp -->
但是,事实并没有达到我预计的效果。没错,又报错了:
jsp The method getJspApplicationContext(ServletContext) is undefined for the typ...
因为项目中有像jsp-api.jar servlet-api.jar(主要是这个包引起的)跟tomcat的lib中同样的包,
但版本比tomcat的版本要低,在运行的时候,因为会优先加载项目中的包,
所以产生了错误,把项目中和tomcat相同的包删除(必须删除,如果替换还会产生其他的错误),
问题就可以解决了。
最后,用tomcat中的jsp-api.jar替换,下载的jar。
需要在工程中引入 jsp-api.jar
路径在 tomcat\common\lib下
作者:Kaspar_Choo
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。