在动态Web应用程序异常java.lang.NoClassDefFoundError,Eclipse

2019-09-19 02:48发布

这个问题已经在这里有一个答案:

  • java.lang.NoClassDefFoundError:使用javax / servlet的/ JSP / JSTL /核心/配置 2个回答

当我跑步时我器件的应用,当我按下按钮,我重定向到另一个XHTML页面一切正常到时候。 然后Eclipse控制台,直到我停止服务器显示:

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/ChatAzure] 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:345)
    at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
    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:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
    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:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

我使用:月食,jsf2-1-7,JSTL-1.2.jar,Tomcat的V0.7。 我不知道什么是错的,我需要帮助。

Answer 1:

所提到的类是JSTL的一部分。 这通常已经完全成熟的Java EE容器提供的,而不是在Tomcat作为是一个准系统JSP / Servlet容器。 你需要自己与Web应用程序一起提供JSTL。 它最终被放置在web应用程序的运行时类路径。

您正确提到jstl-1.2.jar (我认为这是完全一样,你可以在找到一个我们JSTL wiki页面 ),但这个问题表明,它显然没有被放置在正确的位置。 你需要把它放在/WEB-INF/lib的Web项目的文件夹中。 此文件夹是Web应用程序的默认运行时类路径覆盖。 做没有更多的需求。 如果你已经在项目的构建路径属性在试图解决它曾经摆弄,你应该撤消所有这些尝试。


无关的具体问题:你为什么还在使用传统的JSP? 它已被弃用 ,因为JSF 2.0 Facelets的由(XHTML)成功了。 请确保您正在阅读最新的JSF 2.x的资源,而不是JSF 1.x中的人,同时学习JSF。



文章来源: Exception java.lang.NoClassDefFoundError in Dynamic Web Application, Eclipse, JSF [duplicate]