gpt4 book ai didi

jsf - java.lang.NoClassDefFoundError : javax/servlet/jsp/jSTL/core/Config

转载 作者:行者123 更新时间:2023-12-01 22:35:44 32 4
gpt4 key购买 nike

我正在使用 Javascript 和 JSF 开发一个带有网站的 FB 登录应用程序。我已将我的代码发布在 here 。问题是,当我运行应用程序时,它不显示 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)

这里有什么问题以及如何解决它?

最佳答案

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

正如包名称所暗示的,所提到的类是 JSTL 的一部分。该异常清楚地表明在运行时类路径中找不到所提到的类的类定义文件。 IE。 Config.class文件或至少包含该类的 JAR 文件在 web 应用程序的运行时类路径中丢失。

JSTL通常已经由成熟的 Java EE 容器提供,例如 TomEE , JBoss AS/EAP/WildFly , Payara/GlassFish , WebLogic等,但不是通过准系统 JSP/Servlet 容器,例如 TomcatJetty 。对于它们,您需要自己提供 JSTL 和 Web 应用程序,就像您为 JSF 所做的那样(成熟的 Java EE 容器也已经提供了这种功能)。

您遇到此异常是因为 Facelets 的 <c:xxx> tags当您使用 Tomcat 时,它会依赖于 JSTL 实现 JAR 文件,而 Tomcat 并未随 JSTL 一起提供。 JSTL 是一个独立的库,具有 jstl-1.2.jar 的风格。 。只需下载并将其放入您的网络应用程序的 /WEB-INF/lib 中即可文件夹,以及您已经放置在那里的 JSF JAR 文件,并且此异常应该消失。 Maven 用户可以通过添加以下依赖项(并执行完整重建/重新部署)来实现这一点:

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

或者,只需将 Tomcat 替换为真正的 Java EE 容器即可。

另请参阅:

关于jsf - java.lang.NoClassDefFoundError : javax/servlet/jsp/jSTL/core/Config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268095/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com