Lorsque j'exécute mon application après avoir entré l'URL, cette exception arrive. J'utilise Eclipse et Tomcat7.0.35. J'ai aussi ajouté Jstl.jar et jstl1.2.jar
Mon code est
Java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1714)
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1559)
at org.Apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.Java:91)
at org.Apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.Java:78)
at org.Apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.Java:241)
at javax.faces.webapp.FacesServlet.service(FacesServlet.Java:199)
at org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:305)
at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:210)
at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:222)
at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:123)
at org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:472)
at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:171)
at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:99)
at org.Apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.Java:936)
at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:118)
at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:407)
at org.Apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.Java:1004)
at org.Apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.Java:589)
at org.Apache.Tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.Java:310)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
Téléchargez les pots suivants et ajoutez-les à votre WEB-INF/lib
répertoire:
L'erreur indique que la classe ne peut pas être trouvée car elle n'est pas disponible dans votre application.
Si vous utilisez Maven , assurez-vous de disposer de la dépendance pour jstl
artefact:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Si vous ne l'utilisez pas, assurez-vous simplement d'inclure le fichier JAR dans votre chemin de classe. Voir cette réponse pour les liens de téléchargement.
Par défaut, le conteneur Tomcat ne contient aucune bibliothèque jstl. Pour résoudre ce problème, déclare jstl.jar dans votre fichier Maven pom.xml si vous travaillez dans un projet Maven ou ajoutez-le au chemin de classe de votre application.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Ajoutez jstl
jar à votre chemin d'accès aux classes.
Les bibliothèques jstl sont probablement absentes de votre chemin de classe/inaccessibles par Tomcat.
Vous devez ajouter au moins les fichiers JAR suivants dans votre WEB-INF/lib
répertoire:
Ajoutez bibliothèque JSTL comme dépendance à votre projet (javax.servlet.jsp.jstl.core.Config
_ fait partie de ce package). Par exemple, si vous utilisiez Gradle , vous pourriez écrire dans un build.gradle:
dependencies {
compile 'javax.servlet:jstl:1.2'
}
Juste un petit commentaire: parfois, Maven ne copie pas le fichier jstl-.jar dans le dossier WEB-INF, même si le fichier pom.xml contient l’entrée correspondante.
J'ai dû copier manuellement le fichier JSTL dans/WEB-INF/lib sur le système de fichiers. Cela a résolu le problème. Le problème peut être lié au plugin Maven war packaging.
J'ai eu le même problème. Allez dans Propriétés du projet -> Assemblage de déploiement et ajoutez jstl jar