Google app engine App Engine 1.8.2不支持的主要版本。次要版本51.0

Google app engine App Engine 1.8.2不支持的主要版本。次要版本51.0,google-app-engine,Google App Engine,我在Google App Engine的日志中得到了不受支持的major.minor 51.0版。我知道Stackoverflow上有很多关于这个问题的帖子,但这些帖子大多是2012年发布的,当时AppEngine还在JRE 6上。现在AppEngine的版本是1.8.2,在JRE 7上运行。我使用Maven和IntelliJ开发我的应用程序,两者的目标JDK都设置为1.7(实际上IntelliJ只是选择Maven设置)。我的本地Java环境(在Mac OSX 10.7.5上)显示: java版

我在Google App Engine的日志中得到了不受支持的major.minor 51.0版。我知道Stackoverflow上有很多关于这个问题的帖子,但这些帖子大多是2012年发布的,当时AppEngine还在JRE 6上。现在AppEngine的版本是1.8.2,在JRE 7上运行。我使用Maven和IntelliJ开发我的应用程序,两者的目标JDK都设置为1.7(实际上IntelliJ只是选择Maven设置)。我的本地Java环境(在Mac OSX 10.7.5上)显示:

java版本“1.7.0_21” Java(TM)SE运行时环境(build 1.7.0_21-b12) Java HotSpot(TM)64位服务器虚拟机(构建23.21-b01,混合模式)

所以,据我所知,我的应用程序是使用JRE 7构建的,而AppEngine是在JRE 7上运行的。我不明白的是,为什么live App引擎仍然抱怨不受支持的51.0版本,我知道它代表JRE 7?我不能降级到JRE 6,因为(1)我们正在使用需要JRE 7的特定Hibernate功能,(2)应用程序引擎可能会停止对JRE 6的支持

有人也有这种经历吗?发生这种情况时,您可以在下面找到实际的应用程序引擎错误日志

谢谢

拉尔夫

===== 来自servlet的未捕获异常 java.lang.UnsupportedClassVersionError:com/arcus/pba/server/guice/MyGuiceServletContextListener:Unsupported major.minor版本51.0 位于com.google.appengine.runtime.Request.process-4a9c14a818a2f9f2(Request.java) 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClass(ClassLoader.java:634) 位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 位于java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:616) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:266) 位于org.mortbay.jetty.handler.ContextHandler.loadClass(ContextHandler.java:1101) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.initListener(WebXmlConfiguration.java:630) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.initwebxmlement(WebXmlConfiguration.java:368) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180) 位于org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1247) 位于org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 位于org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 位于com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:483) 在com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:490) 位于com.google.tracing.TraceContext.runInContext(TraceContext.java:777) 在com.google.tracing.TraceContext$DoInTraceContext.runInContext(traceontext.java:754)上 在com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContextNonRef(TraceContext.java:345)上 在com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContext(TraceContext.java:337) 位于com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:487)
在java.lang.Thread.run(Thread.java:679)

中,我已经多次面对这个问题,关键是要找出哪个类是用错误的版本编译的。例如,它可能是一个依赖项。您可以使用针对应用程序使用的所有类文件运行的代码段。这些文件位于
webappdir/WEB-INF/classes
中,您还需要解压缩
webappdir/WEB-INF/lib
中的所有JAR文件