当我在输入URL后运行我的应用程序时,会出现此异常。我正在使用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)
答案 0 :(得分:64)
错误告诉您无法找到该类,因为它在您的应用程序中不可用。
如果您使用 Maven ,请确保您具有jstl
工件的依赖项:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
如果您不使用它,请确保在类路径中包含JAR。有关下载链接,请参阅this answer。
答案 1 :(得分:50)
下载以下jar并将其添加到WEB-INF/lib
目录:
答案 2 :(得分:7)
默认情况下,Tomcat容器不包含任何jstl库。要解决此问题,如果您在Maven项目中工作或将其添加到应用程序的类路径中,请在Maven pom.xml文件中声明jstl.jar
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
答案 3 :(得分:3)
将jstl
jar添加到您的应用程序类路径。
答案 4 :(得分:2)
可能你的类路径中缺少jstl库/ tomcat无法访问。
您需要在WEB-INF/lib
目录中添加至少以下jar文件:
答案 5 :(得分:1)
快速评论:即使pom.xml有条目,Maven也不会将jstl-.jar复制到WEB-INF文件夹。
我不得不手动将JSTL jar复制到文件系统上的/ WEB-INF / lib。这解决了这个问题。该问题可能与Maven war包装插件有关。
答案 6 :(得分:1)
添加JSTL library作为项目的依赖项(javax.servlet.jsp.jstl.core.Config
是此程序包的一部分)。
例如,如果您使用Gradle,则可以在build.gradle中编写:
dependencies {
compile 'javax.servlet:jstl:1.2'
}
答案 7 :(得分:1)
我遇到了同样的问题。转到项目属性 - &gt;部署并且添加jstl jar