【发布时间】:2012-11-21 11:49:31
【问题描述】:
我正在尝试创建一个基本的 JSF 应用程序,但似乎无法使其工作 - 我怀疑缺少某些东西,默认情况下在 faces-config.xml 文件中,但我不确定是什么。我收到此错误:
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
我用谷歌搜索了它,发现它是一个据称丢失的 jar 文件。我下载并添加到项目的“构建路径”中,刷新并重新启动服务器,但它仍然无法正常工作。外部 JAR 文件称为“jstl-1.2.jar”。
以下是报告的错误列表:
HTTP Status 500 - javax/servlet/jsp/jstl/core/Config
type Exception report
message javax/servlet/jsp/jstl/core/Config
description The server encountered an internal error that prevented it from fulfilling
this request.
exception
javax.servlet.ServletException: javax/servlet/jsp/jstl/core/Config
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
root cause
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:345)
com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
root cause
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:345)
com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.32 logs.
有什么想法吗?这必须是一个简单的修复,因为从 JSF 应用程序中弹出一个简单的 HelloWorld 不会这么复杂。
干杯
【问题讨论】:
-
你能贴出你的类路径中有哪些库(.jar)
-
Apache Tomcat v7.0.类路径中有以下内容:jstl-1.2.jar、Apache Tomcat v7.0、EAR 库、JRE System Library[jre7] 和 Web App Libraries
-
首先,我建议您使用一些已经包含 JSF 实现的服务器,例如 JBoss 或 Glassfish。
-
@SJuan76 这不是一个好建议,您可以编写一个 JSF 2 应用程序并将其部署在 Tomcat 7 上没有问题。
-
看起来你没有在你的类路径中设置 JSTL 库(或者没有很好地配置)。确保您在 WEB-INF/lib 目录中有这个(和其他)jar,并且它们在生成的战争中可用。
标签: jsf