java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator

我按照这个链接中的指南来安装JSTL,但是当我尝试启动我的JSP页面时,出现以下错误:

java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator

taglib声明是:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

我在Tomcat webapps的/WEB-INF/lib下安装了JSTL 1.1,并试图在我的项目中做同样的事情,但是没有成功。 我也试过JSTL的1.2版本,仍然是一样的消息。 这是如何造成的,我该如何解决?

javax.servlet.jsp.tagext.TagLibraryValidator类是在JSP 2.0中引入的。 这个错误可能有以下可能的原因:

  • 您没有运行与JSP 2.0兼容的serlvetcontainer。 例如,Tomcat 4.x或5.0。 你至less需要Tomcat 5.5或6.0,甚至更好,7.0。 只是最新的版本。

  • 你用任意下载的jsp-api.jar或者j2ee.jar文件或者包含JSP API的任何东西j2ee.jar/WEB-INF/lib ,这些JSP API源于完全不同的servletcontainer make / version,而这个版本实际上不符合JSP 2.0。 摆脱那些图书馆。 你不需要他们。 如果你这样做了解决方法编译错误,那么你做错了。 它们应该在编译时类path中,而不是在运行时类path中。 另请参见如何在Eclipse项目中导入javax.servlet API?