我正在使用這個:Tomcat 7.0JSF 2.0JRE 7但是當嘗試運行我的應用程序時,出現以下異常:java.lang.IllegalStateException: Could not find backup for factory javax.faces.application.ApplicationFactory. at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1011) at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343) at org.apache.myfaces.context.servlet.FacesContextImplBase.getApplication(FacesContextImplBase.java:159) at org.apache.myfaces.context.servlet.FacesContextImplBase.getELContext(FacesContextImplBase.java:210) at javax.faces.component.UIViewRoot.setLocale(UIViewRoot.java:1463) at org.apache.myfaces.webapp.AbstractFacesInitializer._createFacesContext(AbstractFacesInitializer.java:477) at org.apache.myfaces.webapp.AbstractFacesInitializer.initStartupFacesContext(AbstractFacesInitializer.java:449) at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:113) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)有什么想法嗎?
3 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
如果您的Web應用程序的運行時類路徑被多個JSF impls /版本污染,則可能會發生這種情況。org.apache.myfaces
堆棧跟蹤中的條目表明您正在使用MyFaces。因此,此問題表明您在Web應用程序的運行時類路徑中有另一個JSF實現(例如Mojarra),該實現與之沖突??梢酝ㄟ^jsf-api.jar
或jsf-impl.jar
或識別javax.faces.jar
。如果刪除所有這些,則此問題應消失。
或者,如果您實際上打算使用Mojarra代替MyFaces(即您沒有在問題中的任何地方明確聲明意圖的JSF實施/版本,但是您只是像在“ JSF 2.0”中那樣概括地指出了JSF規范,所以也許您實際上已經不知道您在做什么),那么您應該myfaces-*.jar
從Web應用程序中刪除文件。
添加回答
舉報
0/150
提交
取消