GAE 1.7 JSF 2部署的问题

时间:2012-08-16 19:14:15

标签: java google-app-engine jsf jsf-2 web-deployment

我按照本指南制作了一个JSF 2.1项目并将其部署到Google App Engine:

https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform-Enterprise-Edition/JavaServer-Faces/javaserver-faces-21/configuring-javaserver-faces-21-to-run-on-the-google-app-engine-using-eclipse

当我在本地运行它时,我工作得很好但是当我尝试在GAE部署应用程序时,会发生以下错误:

Uncaught exception from servlet java.lang.UnsupportedClassVersionError: com/sun/faces/config/WebConfiguration at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:163) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:477) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:679)

发生了什么事?我正在考虑这个新的1.7 JDK负责它。 在本地运行时,我需要使用“-XX:-UseSplitVerifier”来正确构建项目。也许GAE JDK正在使用其他规格来构建它并导致这种情况。我真的不知道。

主要问题是: 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

从文档here

中引用

Java运行时环境

App Engine使用Java 6虚拟机(JVM)运行Java应用程序。 App Engine SDK支持Java 5及更高版本,Java 6 JVM可以使用使用任何版本的Java编译器编译的类,直到Java 6。

是的,JDK 1.7版本存在问题。在1.6中编译你的项目,你应该没事!