2011-11-21 108 views
2

使用GAE 1.5.5和Mojarra 2.0.6 FCS,我在啓動日誌中看到以下消息。Google App Engine上的JSF - java.lang.NoSuchFieldError:FaceletCache

它也出現在文章Configuring JavaServer Faces 2.0 to run on the Google App Engine Using Eclipse中給出的版本Mojarra 2.0.4。

該項目只是一個基本的JSF應用程序與鏈接文章中的web.xml。

這是一個已知的問題?我還會將其發佈到Google App Engine/Java論壇上。

[java] INFO: Mojarra 2.0.6 (FCS FCS) für Kontext '' wird initialisiert. 
[java] 21.11.2011 16:10:50 com.sun.faces.spi.InjectionProviderFactory createInstance 
[java] INFO: JSF1048: PostConstruct/PreDestroy-Annotationen vorhanden. Verwaltete Bean-Methoden, die mit diesen Annotationen markiert sind, lassen die entsprechenden Annotationen verarbeiten. 
[java] 21.11.2011 16:10:50 com.sun.faces.config.ConfigureListener contextInitialized 
[java] SCHWERWIEGEND: Critical error during deployment: 
[java] java.lang.NoSuchFieldError: FaceletCache 
[java]   at com.sun.faces.application.ApplicationAssociate.createFaceletFactory(ApplicationAssociate.java:655) 
[java]   at com.sun.faces.application.ApplicationAssociate.<init>(ApplicationAssociate.java:227) 
[java]   at com.sun.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:210) 
[java]   at com.sun.faces.application.ApplicationFactoryImpl.getApplication(ApplicationFactoryImpl.java:107) 
[java]   at com.sun.faces.config.processor.AbstractConfigProcessor.getApplication(AbstractConfigProcessor.java:130) 
[java]   at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:256) 
[java]   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114) 
[java]   at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116) 
[java]   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114) 
[java]   at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:216) 
[java]   at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:338) 
[java]   at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:226) 
[java]   at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) 
[java]   at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) 
[java]   at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
[java]   at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
[java]   at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
[java]   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
[java]   at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
[java]   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
[java]   at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
[java]   at org.mortbay.jetty.Server.doStart(Server.java:224) 
[java]   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
[java]   at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186) 
[java]   at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182) 
[java]   at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172) 
[java]   at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164) 
[java]   at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) 
[java]   at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113) 
[java]   at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89) 
[java] 21.11.2011 16:10:50 com.google.apphosting.utils.jetty.JettyLogger warn 

回答

2

這應該是這是在鑽嘴魚科2.0.3推出了WebConfiguration.WebContextInitParameter枚舉的領域。

這個特殊的例外情況表明,您已經擁有版本2.0.2或更高版本的Mojarra impl 版本2.0.3的Mojarra impl或您的webapp的運行時類路徑中的更新版本。

清理它。掃描重複的jsf-impl.jar文件,如有必要,還可以使用javaee.jar其實際來自Glassfish。

+0

該類路徑包括一個修改的'WebConfiguration'類(需要刪除JNDI類的依賴關係),該類現在更新爲支持Mojarra 2.0.4的更新版本,現在它可以工作。類名沒有出現在堆棧跟蹤中,非常感謝您的幫助! – mjn

+0

不客氣。 – BalusC