java.lang.NoClassDefFoundError:javax/servlet/jsp/tagext/TagLibraryValidator [重复]

问题描述 投票:0回答:5

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

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

标签库声明是:

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

我在Tomcat webapps中的

/WEB-INF/lib
下安装了JSTL 1.1,并尝试在我的项目中执行相同的操作,但它不起作用。我也尝试了 JSTL 1.2 版,但仍然出现相同的消息。这是怎么造成的以及如何解决?

jsp jstl
5个回答
16
投票

我遇到了类似的问题,我使用的是 Tomcat 10。我使用 Apache NetBeans 12.3 IDE 时收到此错误。

我添加了以下库:

  1. jakarta.servlet.jsp.jstl-api-2.0.0.jar
  2. jakarta.servlet.jsp.jstl-2.0.0 (1).jar

我的代码现在运行良好。 link to see where I added them


8
投票

JSP 2.0 中引入了 javax.servlet.jsp.tagext.TagLibraryValidator 类,后来在 JSP 3.0 中重新打包为 jakarta.servlet.jsp.tagext.TagLibraryValidator。因此,此错误可能有以下可能原因:

另请参阅:


0
投票

我也有同样的问题。使用 WildFly 服务器最新版。这解决了我同样的问题。


0
投票

此处下载所有必需的 jar 文件。添加 jar 文件时,不要包含 jakarta.servlet-api-5.0.0.jar 文件,该文件已包含在 Tomcat10.0 中

这不仅适用于基本的 JSTL 函数,还适用于使用

等标签的迭代

0
投票

我也有类似的问题。除了我的是 NoClassDefFoundError:javax/servlet/jsp/tagext/TryCatchFinally。我正在将我的网络应用程序转换为 jakarta EE。我尝试使用上面提到的罐子,但它没有清除错误。将应用程序删除后,我发现 SpringFramework 5.2.3 的 Maven 依赖项不支持 Jakarta EE。我必须等到 Spring 发布他们的框架 6.0.0。 :-{

© www.soinside.com 2019 - 2024. All rights reserved.