Jsf NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config

Jsf NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config,jsf,jstl,facelets,noclassdeffounderror,Jsf,Jstl,Facelets,Noclassdeffounderror,我正在使用Javascript和JSF开发一个FB登录网站的应用程序。我已将我的代码发布在。问题是,当我运行应用程序时,它不会显示JSF页面,而是引发以下异常: Nov 28, 2013 7:21:46 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/FacebookLogin]

我正在使用Javascript和JSF开发一个FB登录网站的应用程序。我已将我的代码发布在。问题是,当我运行应用程序时,它不会显示JSF页面,而是引发以下异常:

Nov 28, 2013 7:21:46 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/FacebookLogin] threw exception [javax/servlet/jsp/jstl/core/Config] with root cause
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:344)
    at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:153)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    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:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    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)
这里的问题是什么?我该如何解决

NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config

正如包名所提示的,所提到的类是包的一部分。异常清楚地表明,在运行时类路径中找不到所述类的类定义文件。例如,webapp的运行时类路径中缺少Config.class文件或至少包含该类的JAR文件

通常已经由成熟的JavaEE容器(如,//,/)提供了,但不是由简单的JSP/Servlet容器(如和)提供。对于他们,您需要自己提供JSTL和web应用程序,就像您为JSF所做的一样,JSF也已经由成熟的JavaEE容器提供

您面临这个异常是因为Facelets依赖于JSTL实现JAR文件,而您使用的是Tomcat,它不随JSTL一起提供。JSTL是一个单独的库,在flavor中提供。只需下载并将其放入webapp的/WEB-INF/lib文件夹,以及您已经放在那里的JSF JAR文件,这个异常就会消失。Maven用户可以通过添加以下依赖项并执行完全重建/重新部署来实现这一点:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
或者,用一个真正的JavaEE容器替换Tomcat

另见: -包含JSF安装说明
如果有人试图为jboss-eap-6.4.0.GA创建springframework-4.0.7-RELEASE模块时出错,我只想添加我的贡献。My module.xml现在包含:

<dependencies>
    ...
    <!-- Contains javax.servlet.jsp.jstl.core.Config -->
    <module name="javax.servlet.jstl.api"/>
    ...
</dependencies>

是的,异常问题已经解决了。但是,FB_图标仍然没有显示在我的网页中。!!它完美地展示了带有按钮的桌子。这里有什么问题?我怎样才能得到它?我已经在前面的问题中发布了我的代码,请按照我在问题中提供的链接进行操作。为了你的参考,我也贴在这里。请看一看。不客气。只需按下右上角的提问按钮,即可提出新问题并获得答案。这个新问题与当前的问题完全无关。一次只问一个问题。你最终会到达那里的。将完全不同的问题混合在一个问题中,对你、我和未来面临相同问题的用户都没有帮助。你失去了概览,这会让你很难找到答案,就像你在一个老式的讨论论坛上涉水寻找答案时所经历的那样。jstl-1.2.jar下载链接断开。@Shotgun:修复,谢谢。您也可以在我的答案中第一个JSTL链接后面的页面中找到它。