Абсолютное значение uri: http://java.sun.com/jsp/jstl/core не может быть разрешено ни в файле web.xml, ни в файлах jar, развернутых с помощью этого приложения. - PullRequest
44 голосов
/ 02 января 2012

Я использую JDK 1.7, Apache Tomcat 7.0.23, и я поместил базовую библиотеку JSTL (1.2) и STANDARD jar в папку lib WEB_INF, она не дает мне никакого предупреждения, но когда я попытаюсь запустить код

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- Create Bean Instance-->
<jsp:useBean id="listdomain" class="bean.PopulateMultiDomain" scope="session"></jsp:useBean>

<jsp:setProperty property="*" name="listdomain"/>

<c:forEach var="item" items="${listdomain.status}">
    <option>
        <c:out value="${item}" />
    </option>
</c:forEach> 

выдает следующую ошибку:

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
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:410)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Кто-нибудь может подсказать, какую ошибку я совершаю?

Ответы [ 6 ]

43 голосов
/ 02 января 2012

Удалить standard.jar. Это очевидно старая версия JSTL 1.0, когда URI TLD были без пути /jsp. При наличии JSTL 1.2 здесь вам вообще не нужно standard.jar. Достаточно только jstl-1.2.jar в /WEB-INF/lib.

Смотри также:

21 голосов
/ 26 ноября 2012

Я решил ту же проблему. Я только что добавил JSTL-1.2.jar в /apache-tomcat-x.x.x/lib и установил область видимости, указанную в maven pom.xml:

 <dependency>
     <groupId>jstl</groupId>
     <artifactId>jstl</artifactId>
     <version>1.2</version>
     <scope>provided</scope>
 </dependency>
3 голосов
/ 06 марта 2018

Убедитесь, что вы не пропустили все банки в

tomcat.util.scan.StandardJarScanFilter.jarsToSkip

в Tomcat catalina.properties.

2 голосов
/ 04 августа 2017

Я удалил область, а затем использовал обновление maven для решения этой проблемы.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    **<!-- <scope>provided</scope> -->**
</dependency>

jstl lib отсутствует в папке lib tomcat. Так что мы должны включить ее. Я не понимаю, почему нам говорят, что и сервлет-апи, и jstl должны быть сохранены в том виде, в котором они предоставлены.

1 голос
/ 18 марта 2018

Если вы используете eclipse и maven для обработки зависимостей, вам может потребоваться предпринять эти дополнительные шаги, чтобы убедиться, что eclipse правильно копирует зависимости Maven-зависимости не видны в WEB-INF / lib (а именно Deployment Сборка для динамического веб-приложения)

1 голос
/ 18 мая 2017

Указанная ошибка также может быть вызвана отключением JarScanner in tomcat/conf/context.xml.

См. Также Обновление с Tomcat 8.0.39 до 8.0.41 приводит к ошибкам «сканирования не удалось» .

<JarScanner scanManifest="false"/> позволяет избежать обеих проблем.

...