2011-05-08 141 views
1

我從任務管理器中強行關閉了打開的eclipse,之後我在當時正在工作的JSF項目中收到以下錯誤。找不到工廠:javax.faces.context.FacesContextFactory問題

PLZ告訴我任何解決方案。 在此先感謝。

* 錯誤: - *找不到廠:javax.faces.context.FacesContextFactory

以下是堆棧跟蹤。

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306) 
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:166) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1133) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1087) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:799) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) 
    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:619) 
Oct 21, 2003 3:41:37 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet Faces Servlet 
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306) 
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:166) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1133) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1087) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:799) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) 
    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:619) 

web.xml中:

<web-app> 
<servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
</web-app> 
+0

你能粘貼你的web.xml嗎?你在部署什麼servlet容器?確保你的web.xml有定義的Faces Servlet類。您是否因任何原因將JSF與您的應用打包在一起? – CoolBeans 2011-05-08 17:59:01

+0

@CoolBeans:我已經添加了web.xml,請再次檢查。我的項目處於開發階段,我正在使用Tomcat。項目實際上是基於jsf的。 – Adnan 2011-05-08 18:11:39

+0

'web.xml'片段看起來不錯。讓我們知道什麼真棒@BalusC推薦後會發生什麼。既然它已經工作過,也許乾淨的重啓可能會解決它! – CoolBeans 2011-05-08 18:24:11

回答

6

所以你殺的Eclipse/Tomcat的通過任務管理器之前,它一直?也許Tomcat的部署或工作文件夾實際上很髒,而Eclipse仍然認爲它是乾淨的。在Eclipse中右鍵單擊Tomcat(如果尚未完成,請先關閉Tomcat),然後選擇Clean,然後發佈然後啓動它。

+0

@CoolBeans和BalusC:多謝vvvv。 – Adnan 2011-05-08 18:27:02

+0

不客氣。 – BalusC 2011-05-08 20:52:55