jsf - java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
(8)
Agregue jstl
jar a su classpath de aplicación.
Esta pregunta ya tiene una respuesta aquí:
Cuando ejecuto mi aplicación después de ingresar la URL, esta excepción se aproxima. Estoy usando Eclipse y Tomcat7.0.35. También agregué Jstl.jar y jstl1.2.jar
Mi código es
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)
Agregue la biblioteca JSTL como dependencia de su proyecto ( javax.servlet.jsp.jstl.core.Config
es una parte de este paquete). Por ejemplo, si estuviera usando Gradle , podría escribir en build.gradle:
dependencies {
compile ''javax.servlet:jstl:1.2''
}
Descargue los siguientes archivos jar y agréguelos a su directorio WEB-INF/lib
:
El error le dice que no puede encontrar la clase porque no está disponible en su aplicación.
Si está utilizando Maven , asegúrese de tener la dependencia para el artefacto jstl
:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Si no lo está usando, solo asegúrese de incluir el JAR en su classpath. Vea esta respuesta para enlaces de descarga.
Por defecto, el contenedor Tomcat no contiene ninguna biblioteca jstl. Para solucionarlo, declara jstl.jar en tu archivo Maven pom.xml si estás trabajando en el proyecto Maven o agrégalo al classpath de tu aplicación
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Probablemente las bibliotecas jstl no se encuentren en su classpath / no sean accesibles por tomcat.
Debe agregar al menos los siguientes archivos jar en su directorio WEB-INF/lib
:
- jsf-impl.jar
- jsf-api.jar
- jstl.jar
Solo un comentario rápido: a veces Maven no copia el archivo jstl-.jar en la carpeta WEB-INF incluso si el pom.xml tiene la entrada correspondiente.
Tuve que copiar manualmente el archivo JSTL a / WEB-INF / lib en el sistema de archivos. Eso resolvió el problema. El problema puede estar relacionado con el plugin Maven War Packaging.
Yo tuve el mismo problema. Vaya a Propiedades del proyecto -> Despliegue Assemplbly y agregue jstl jar