java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.core.Config

当我inputURL后运行我的应用程序,这个exception即将到来。我使用Eclipse和Tomcat7.0.35。 我还添加了Jstl.jar和jstl1.2.jar

我的代码是

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) 

下载下面的jar文件并将其添加到您的WEB-INF/lib目录中:

  • JSP-API-2.0.jar
  • JSTL-1.2.jar

错误是告诉你它找不到该类,因为它不适用于你的应用程序。

如果您使用的是Maven ,请确保您具有jstl工件的依赖关系:

 <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> 

如果你不使用它,只要确保你的类path中包含了JAR。 看到这个答案下载链接。

默认情况下,Tomcat容器不包含任何jstl库。 为了解决这个问题,如果你在Maven项目中工作,或者把它添加到你的应用程序的classpath中,在你的Maven pom.xml文件中声明jstl.jar

 <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> 

jstl jar添加到您的应用程序类path中。

可能是你的类path中缺lessjstl库/ tomcat无法访问它。

您需要在WEB-INF/lib目录中至less添加以下jar文件:

  • JSF-impl.jar中
  • JSF-api.jar文件
  • 的jstl.jar

只是一个简短的评论:有时Maven不会将jstl-jar复制到WEB-INF文件夹中,即使pom.xml中有条目也是如此。

我必须手动将JSTL jar复制到文件系统上的/ WEB-INF / lib。 这解决了这个问题。 这个问题可能与Maven的战争包装插件有关。

将JSTL库作为依赖项添加到项目中( javax.servlet.jsp.jstl.core.Config是此包的一部分)。 例如,如果您正在使用Gradle ,则可以在build.gradle中写入:

 dependencies { compile 'javax.servlet:jstl:1.2' } 

我有同样的问题。 转到项目属性 – >部署Assemplbly并添加jstl jar