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下

posted @ 2020-06-28 15:50  Kaspar_Choo  阅读(211)  评论(0编辑  收藏  举报