2012-07-04 26 views
5

當我運行我的應用程序時,當按按鈕並重定向到另一個xhtml頁面時,一切正常。然後Eclipse控制檯,直到我停止服務器顯示:動態Web應用程序,Eclipse,JSF中的異常java.lang.NoClassDefFoundError

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。 我不知道什麼是錯,我需要幫助。

回答

9

提到的類是JSTL的一部分。這通常是由一個完整的Java EE容器提供的,但在Tomcat中並不是一個純粹的JSP/Servlet容器。您需要自己提供JSTL以及Web應用程序。它最終被放置在webapp的運行時類路徑中。

你正確提到了jstl-1.2.jar(我認爲這正是你在our JSTL wiki page中可以找到的那個),但是這個問題表明它顯然沒有放在正確的位置。您需要將其放置在Web項目的/WEB-INF/lib文件夾中。該文件夾由webapp的默認運行時類路徑覆蓋。沒有什麼需要做的了。如果您曾嘗試解決該項目的項目Build Path屬性,則應該嘗試所有這些嘗試。


無關到具體的問題:你爲什麼還在使用傳統的JSP?自從JSF 2.0以來,已經棄用併成功了Facelets(XHTML)。確保您在學習JSF的同時閱讀最新的JSF 2.x資源,而不是JSF 1.x資源。

+0

太好了,非常感謝! :) – user1494328

+0

不客氣。 – BalusC

+0

如果你跟1.2.1一起下載,請確保你下載了兩個.JAR並且包括它們兩個 – th3byrdm4n

相關問題