Le déploiement d'une webapp JSF aboutit à java.lang.ClassNotFoundException: javax.servlet.JSP.jstl.core.Config [duplicate]

cette question a déjà une réponse ici:

  • de java.lang.Noclassdeffonderror: javax / servlet/jsp/jstl/core / Config 2 réponses

j'obtiens une erreur, quand j'ai commencé mon application JavaServer Faces. Sur le navigateur je reçois l'erreur suivante:

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: javax/servlet/jsp/jstl/core/Config
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)


root cause 

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
    org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)


root cause 

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
    org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.12 logs.

Sur mon Eclipse IDE erreur suivante:

    Nov 19, 2013 8:37:17 PM org.apache.catalina.startup.Catalina start
Information: Server startup in 2518 ms
Nov 19, 2013 8:37:18 PM org.apache.catalina.core.StandardWrapperValve invoke
Schwerwiegend: Servlet.service() for servlet [Faces Servlet] in context with path [/de.xxx.jsf.first] threw exception [javax/servlet/jsp/jstl/core/Config] with root cause
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
    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:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

comment cela est-il causé et comment puis-je le résoudre?

4
demandé sur BalusC 2013-11-20 08:05:02

3 réponses

de java.lang.ClassNotFoundException: javax.servlet.JSP.jstl.core.Config

A ClassNotFoundException signifie que la classe spécifiée est manquante dans le chemin de classe d'exécution. Comme le nom du paquet l'indique, il fait partie de JSTL .

JSF (plus spécifiquement, Facelets) a en effet une dépendance sur JSTL pour les <c:xxx> tags . Quand JSF charge, il charge aussi implicitement le noyau JSTL taglib de configuration. Toutefois, si elle ne peut pas être trouvé, vous obtiendrez exactement cette exception.

JSTL (and JSF!) est normalement déjà fourni sur la boîte sur Java EE container tels que JBoss AS/EAP / WildFly, GlassFish, TomEE, WebLogic, etcetera. Cependant, vous utilisez Tomcat, qui est un conteneur JSP/Servlet barebones et qui n'est pas expédié avec JSTL hors de la boîte. Si la mise à niveau vers TomEE par exemple n'est pas une option, vous devez fournir JSTL avec le webapp, comme vous l'avez fait pour JSF.

il suffit de télécharger jstl-1.2.jar et le laisser tomber dans /WEB-INF/lib dossier de votre webapp, avec le JSF JAR(s).

voir aussi:

10
répondu BalusC 2017-05-23 12:25:07

il semble que tu manques lib. vérifier si JSTL 1.1-jstl.jar est ajouté dans votre classepath.

2
répondu Karan Dubal 2013-11-20 04:13:34

Ajouter jstl maven dépendance dans le pom.xml:

         <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
1
répondu ravi 2015-11-18 10:45:15