【问题标题】:PWC6188: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this applicationPWC6188:绝对 uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析
【发布时间】:2013-11-12 10:22:51
【问题描述】:

我正在 Eclipse Kepler 中开发一个动态 Web 项目。我正在尝试使用 JSTL <c:forEach> 编写一个简单的 JSP。为此,我在库下包含了所需的 JAR jstl-1.2.jar,并将以下语句添加到 JSP:

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

但是,当我使用 Run as --> Run on Server 运行它时,它会显示以下错误。

org.apache.jasper.JasperException: /test.jsp(4,61) PWC6188: The absolute uri:     http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application  

已经查阅了很多链接,但不明白这是怎么造成的,怎么解决。

【问题讨论】:

  • 罐子在哪里?它必须在WEB-INF/lib/
  • 我必须通过转到项目属性-Java 构建路径来添加 jar --> 添加外部 JAR。它会自动将其添加到 JAVA RESOURCES--> Libraries

标签: eclipse jsp jstl


【解决方案1】:

为此,我在库下包含了所需的 JAR jstl-1.2.jar

这使它仅在编译时可用,而不是运行时。

您需要撤消您在项目的 Build PathDeployment Assembly 属性中所做的一切。如果您不确定自己在那边都做了哪些更改,那么丢弃当前项目并从头开始重新创建项目,并记住永远不要触摸项目的 Build PathDeployment Assembly 属性,直到您真正了解它在幕后所做的事情(换句话说,当您能够在命令提示符下从头顶创建、构建和部署 WAR 而无需使用任何 IDE)。

正确的程序是:

  • 打开项目的WebContent/WEB-INF/lib 文件夹。
  • jstl-1.2.jar 文件放入其中。

就是这样。没有什么需要做的了。无需在项目属性的任何地方摆弄。 Eclipse 将在那里自动执行必要的魔法。

另见:


更新:根据 cmets,

web.xml 已声明为 2.4 版,我正在使用基本服务器:本地主机上的 J2EE 预览

这就是你的问题的原因。 JSTL 1.2 至少需要 Servlet 2.5 并且“J2EE Preview”已经完全过时了。获取 Tomcat 7(选择核心 ZIP 文件),解压缩,将其集成到 Eclipse 中,将项目添加到 Tomcat,将您的 web.xml 修复为与 Servlet 3.0 兼容,然后启动 Tomcat 并在您喜欢的网络浏览器中输入所需的 URL。

【讨论】:

  • 我没有更改任何项目属性,我只是在库中添加了这个 JAR 文件(在 Eclipse 中使用 ADD Jar 选项)。我也尝试将 jar 物理放入 WEB-INF/lib 并重新运行该项目,但错误仍然存​​在。
  • 正如回答的那样,这不是正确的程序。正确的程序已经得到解答。为什么你总是尝试以不同的方式做事?
  • 那你把你的项目搞砸了。正如回答的那样,从头开始重新创建它,不要尝试以不同的方式做事。
  • 我不认为我搞砸了我的项目,因为我没有触及任何设置/属性。此外,我刚刚通过创建一个新的动态 Web 项目尝试了您的解决方案,我刚刚创建了一个 JSP 文件进行测试,并将该 jar 放在 web-inf/lib 中,仍然无法正常工作。同样的错误即将到来。
  • 您到底在使用什么服务器,web.xml 声明的具体版本是什么?您是否从上到下仔细阅读了 JSTL wiki 页面?
【解决方案2】:

确保jstl-1.2.jar 包含在您的WEB-INF/lib 目录和部署程序集中。

  1. 右键单击项目 > 项目属性
  2. 部署程序集
  3. 点击添加,然后点击文件夹
  4. 选择 WEB-INF/lib 文件夹。

【讨论】:

    【解决方案3】:

    刚遇到这个问题,网上没有任何直接的解决方法。

    解决方案: 将 JSTL 库添加到项目库中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-31
      • 2013-10-21
      • 1970-01-01
      • 2015-04-13
      • 2012-04-16
      相关资源
      最近更新 更多