JasperException:绝对uri:http://java.sun.com/jsp/jstl/core无法解析

时间:2010-03-11 18:11:33

标签: jsp jstl

我的GoDaddy服务器出现了以下问题。 我正在使用JSP与JSTL库。我的/ WEB-INF / lib文件夹包含以下库:

的jstl.jar standard.jar

我的JSP看起来像这样:

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

<p>Hello!   <%
out.print(System.getProperty("java.class.path")); 

%></p>

但我一直得到以下例外:

org.apache.jasper.JasperException: 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

关于它为什么这样做的任何想法?

4 个答案:

答案 0 :(得分:29)

您需要获取正确版本的JSTL,它们使用不同的URI。

如果那个不起作用,请尝试:http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar(JSTL 1.2),或者下拉1.1 JSTL罐。

coderanch处有更详细的版本/ URI列表。

答案 1 :(得分:4)

您需要在Web应用程序中添加以下jar文件

jakarta-jstl-1.1.2.jar
and jakarta-standard-1.1.2.jar files

最近我遇到了同样的问题,我通过添加上面两个jar文件解决了这个问题

答案 2 :(得分:3)

我使用过Tomcat6 37。 至于我,我试过上面提到的解决方案,但仍然有错误。 将jstl-1.2.jar添加到我的%CATALINA_HOME%\ lib目录后,问题就解决了。

答案 3 :(得分:3)

这里的答案对于解释问题非常有用,但是当我认为我正在加载正确的JSTL版本时,它并没有帮助我诊断为什么正在发生。最后,我不得不调试应用程序并在TLD文件处理器(可能是org.apache.jasper.compiler.TagLibraryInfoImpl.getTagLibraryInfos())中放置一个断点,以查看它从哪里获取TLD文件。

然后我发现它正在从一个我不怀疑拥有它的jar中加载旧版本的TLD文件 - 它是GWT(ick)子系统的依赖项。一旦从我的maven依赖项中删除了违规的jar,问题就解决了。

希望将来可以帮助其他人。