L'uri absolu: http://java.sun.com/jsp/jstl/core ne peut pas être résolu dans l'un ou l'Autre web.xml ou les fichiers jar déployés avec cette application

j'utilise JDK 1.7, Apache Tomcat 7.0.23 et j'ai placé JSTL core library (1.2) et STANDARD jar dans le dossier web_inf lib. il ne me donne aucun avertissement mais quand je vais essayer d'exécuter le code

<%@ 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> 

il me donne l'erreur suivante:

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)

quelqu'un peut-il me suggérer quelle erreur je fais?

42
demandé sur ROMANIA_engineer 2012-01-02 17:18:44

6 réponses

supprimer le standard.jar . Il semble qu'il s'agisse d'une ancienne version JSTL 1.0 alors que les URIs de TLD n'avaient pas le chemin /jsp . Avec JSTL 1.2 comme disponible ici vous n'avez pas besoin d'un standard.jar du tout. Juste le jstl-1.2.jar dans /WEB-INF/lib est suffisant.

voir aussi:

43
répondu BalusC 2017-05-23 10:31:15

j'ai résolu le même problème. Je viens d'ajouter JSTL-1.2.jar /apache-tomcat-x.x.x/lib et réglez le champ d'application fourni dans pom maven.xml:

 <dependency>
     <groupId>jstl</groupId>
     <artifactId>jstl</artifactId>
     <version>1.2</version>
     <scope>provided</scope>
 </dependency>
20
répondu Yauhen 2013-02-13 01:23:47

l'erreur en question peut aussi être causée par un JarScanner in tomcat/conf/context.xml .

voir aussi passer de Tomcat 8.0.39 à 8.0.41 entraîne des erreurs .

<JarScanner scanManifest="false"/> permet d'éviter les deux problèmes.

2
répondu Vadzim 2017-05-23 12:34:40

j'ai enlevé la portée et j'ai ensuite utilisé une mise à jour maven pour résoudre ce problème.

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

la lib jstl n'est pas présente dans le dossier lib tomcat.Nous devons donc l'inclure. Je ne comprends pas pourquoi on nous dit de garder à la fois servlet-api et JSTL scope comme prévu.

1
répondu Nirmalya Kar 2017-08-04 16:27:47

assurez-vous que vous n'avez pas sauté tous bocaux en

tomcat.util.scan.StandardJarScanFilter.jarsToSkip

dans Tomcat catalina.propriété.

1
répondu MGorgon 2018-03-06 15:05:13

si vous utilisez eclipse et maven pour gérer les dépendances, vous pouvez avoir besoin de prendre ces mesures supplémentaires pour vous assurer que eclipse copie correctement les dépendances dépendances Maven non visibles dans WEB-INF / lib (à savoir L'assemblage de déploiement pour L'application web dynamique)

1
répondu Colin D 2018-03-18 02:40:57