【问题标题】:java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config [duplicate]java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.core.Config [重复]
【发布时间】:2013-02-13 08:25:11
【问题描述】:

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

【问题讨论】:

  • 你能提供你的类路径中的库列表吗?看来您在类路径中缺少jstl.jar
  • 我在类路径和构建路径中都添加了 jsf-myfaces,jstl,primefaces 库
  • @Sagar 您需要确保 jars 位于 WEB-INF/lib 目录中。看我的回答。
  • 找到错误——由于某种原因,jstl jars 每次都从我的 eclipse 部署路径中删除

标签: jsf jstl classnotfoundexception


【解决方案1】:

您的类路径中可能缺少 jstl 库/tomcat 无法访问。

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

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

【讨论】:

  • ... 并且not 摆弄项目的 Build Path 设置。取消触摸它并在必要时撤消您在那里所做的任何更改。只需将 JAR 放入 /WEB-INF/lib 就足够了。另见stackoverflow.com/tags/jstl/info 请注意,JSTL 1.2 只有一个 JAR 文件,而不是两个。所以如果你有jstl.jarjstl-1.2.jar,你应该删除第一个。
  • @BalusC 好点。谢谢 BalusC。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    默认情况下,Tomcat 容器不包含任何 jstl 库。要修复它,如果您在 Maven 项目中工作,请在 Maven pom.xml 文件中声明 jstl.jar 或将其添加到应用程序的类路径中

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

    【讨论】:

      【解决方案4】:

      错误是告诉您它找不到该类,因为它在您的应用程序中不可用。

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

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

      如果您不使用它,只需确保将 JAR 包含在类路径中即可。下载链接见this answer

      【讨论】:

      • @RaulGogo-我没有使用 Maven
      • 最后一段是针对没有 Maven 的情况。请参阅提供的链接中的答案。
      • 对于其他可能遇到与我相同的问题的人,我的错误是使用 javax.servlet.jsp.jstl 作为 groupId 而不是 javax.servlet
      【解决方案5】:

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

      【讨论】:

      【解决方案6】:

      简单评论一下:有时 Maven 不会将 jstl-.jar 复制到 WEB-INF 文件夹,即使 pom.xml 有它的条目。

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

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

          【解决方案8】:

          我遇到了同样的问题。转到 Project Properties -> Deployment Assemplbly 并添加 jstl jar

          【讨论】:

            猜你喜欢
            • 2013-12-03
            • 2020-04-17
            • 1970-01-01
            • 2012-06-22
            • 2016-07-08
            • 2020-06-14
            • 2014-09-14
            • 2015-06-20
            • 1970-01-01
            相关资源
            最近更新 更多