java - Google App Engine 上的 JSF - java.lang.NoSuchFieldError : FaceletCache

标签 java google-app-engine jsf-2 mojarra

使用 GAE 1.5.5 和 Mojarra 2.0.6 FCS,我在启动日志中看到以下消息。

它也发生在 Mojarra 2.0.4 中,它是文章 Configuring JavaServer Faces 2.0 to run on the Google App Engine Using Eclipse 中给出的版本.

该项目只是一个基本的 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

最佳答案

这应该是在 Mojarra 2.0.3 中引入的 WebConfiguration.WebContextInitParameter 枚举的一个字段。

这个特殊的异常表明您的 web 应用程序的运行时类路径中既有 2.0.2 版或更早版本的 Mojarra impl 2.0.3 版或更高版本的 Mojarra impl。

清理它。扫描重复的 jsf-impl.jar 文件,如有必要,还扫描实际上源自 Glassfish 的 javaee.jar

关于java - Google App Engine 上的 JSF - java.lang.NoSuchFieldError : FaceletCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214907/

相关文章:

python - BlobReferenceProperty 和 ReferenceProperty 模型设计

jsf-2 - 警告 : This page calls for XML namespace declared with prefix [HTML element name] but no taglibrary exists for that namespace

java - 存储学生分数和排名的最佳数据结构

google-app-engine - 如何在不使用 google app engine 的情况下在专用服务器上托管 go 应用程序

java - 对于 Windows 7,推荐的 Java 版本是什么?

python - Google App Engine 中的 Google map 上未显示标记

jsf - 从请求作用域 bean 访问 session 作用域 bean

java - Glassfish 上下文根源问题

java - hibernate jpa 应用程序每次我想运行它时都会挂起

java - 将 .jar 文件包含在类路径中