2012-07-04 40 views
5

khi tôi đang chạy ứng dụng, mọi thứ đều ổn khi tôi nhấn nút và tôi đang chuyển hướng đến một trang xhtml khác. Sau đó che khuất console cho đến khi tôi dừng màn hình máy chủ:Ngoại lệ java.lang.NoClassDefFoundError trong ứng dụng web động, Eclipse, JSF

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) 

tôi sử dụng: nhật thực, jsf2-1-7, JSTL-1.2.jar, Tomcat v0.7. Tôi không biết có gì sai, tôi cần giúp đỡ.

Trả lời

9

Lớp được đề cập là một phần của JSTL. Điều này thường được cung cấp bởi một thùng chứa Java EE chính thức, nhưng không phải trong Tomcat như là một thùng chứa JSP/Servlet barebones. Bạn sẽ cần phải cung cấp JSTL cho mình cùng với ứng dụng web. Cuối cùng nó được đặt trong classpath thời gian chạy của webapp.

Bạn đã đề cập chính xác jstl-1.2.jar (Tôi cho rằng đó chính xác như bạn có thể tìm thấy trong our JSTL wiki page), nhưng vấn đề này cho thấy rằng dường như chưa được đặt ở đúng vị trí. Bạn cần đặt nó trong thư mục /WEB-INF/lib của dự án web. Thư mục này được bao phủ bởi classpath thời gian chạy mặc định của webapp. Không cần làm gì nữa. Nếu bạn đã từng bỏ qua các thuộc tính Xây dựng Đường dẫn của dự án trong một nỗ lực để giải quyết nó, bạn nên hoàn tác tất cả các lần thử đó.


Không liên quan cho vấn đề cụ thể: tại sao bạn vẫn còn sử dụng di sản JSP? Đã được không được chấp nhận và thành công bởi Facelets (XHTML) kể từ JSF 2.0. Đảm bảo rằng bạn đang cập nhật các tài nguyên JSF 2.x chứ không phải JSF 1.x khi đang học JSF.

+0

tuyệt vời, cảm ơn bạn rất nhiều! :) – user1494328

+0

Bạn được chào đón. – BalusC

+0

Nếu bạn đi với 1.2.1 chắc chắn rằng bạn tải về cả hai .JARs và bao gồm cả hai người trong số họ – th3byrdm4n

Các vấn đề liên quan