java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.core配置

uz75evzq  于 2022-09-19  发布在  Java
关注(0)|答案(8)|浏览(178)

当我输入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)
5t7ly7z5

5t7ly7z51#

错误告诉您无法找到该类,因为该类在应用程序中不可用。
如果您正在使用Maven,请确保您对jstl工件具有依赖性:

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

如果您没有使用它,请确保在类路径中包含JAR。下载链接见this answer

fkvaft9z

fkvaft9z2#

下载以下JAR并将其添加到WEB-INF/lib目录:

v1uwarro

v1uwarro3#

默认情况下,Tomcat容器不包含任何jstl库。为了解决这个问题,声明jstl。在你的Maven pom中。xml文件,或者将其添加到应用程序的类路径中

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

zed5wv104#

可能您的类路径中缺少jstl库/tomcat无法访问。
您需要在WEB-INF/lib目录中至少添加以下jar文件:

  • jsf-impl.jar
  • jsf-api.jar
  • jstl.jar
xzv2uavs

xzv2uavs5#

jstl jar添加到应用程序类路径。

atmip9wb

atmip9wb6#

简单评论一下:有时Maven不会复制jstl-。jar到WEB-INF文件夹,即使pom。xml有它的条目。
我必须手动将JSTL jar复制到文件系统上的/WEB-INF/lib。这解决了问题。这个问题可能与Maven war打包插件有关。

jchrr9hc

jchrr9hc7#

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

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

ovfsdjhp8#

我也有同样的问题。转到项目属性->部署组装并添加jstl.jar

相关问题