Java appengine 1.7.2升级后出现错误

Java appengine 1.7.2升级后出现错误,java,google-app-engine,Java,Google App Engine,我将AE升级到1.7.2,现在在首次尝试访问页面时出现以下错误: 如何才能使1.7.2正常工作 Could not initialize class com.google.appengine.tools.appstats.RecordingData Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.google.appengine.tools.appstats.RecordingDat

我将AE升级到1.7.2,现在在首次尝试访问页面时出现以下错误:

如何才能使1.7.2正常工作

  Could not initialize class com.google.appengine.tools.appstats.RecordingData

Caused by:

java.lang.NoClassDefFoundError: Could not initialize class   
com.google.appengine.tools.appstats.RecordingData
at com.google.appengine.tools.appstats.Recorder.makeAsyncCall(Recorder.java:300)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
at com.google.appengine.tools.appstats.AppstatsFilter.call(AppstatsFilter.java:231)

注意:无法初始化的“RecordingData”类位于appengine api labs中。jar肯定位于我的构建路径中,但现在它不起作用。我猜,无法初始化类错误意味着它正在被发现,但不起作用。我怀疑NoClassDefFoundError的是误导性的

最近我也遇到了同样的问题,我开始研究一个使用1.7.1 API的现有AppEngine项目。我使用最新的插件(在撰写本文时为1.7.2.1)创建了一个新的eclipse设置

在我的例子中,在构建路径中有一个旧版本的labs jar(
appengine api labs.jar
)。将其删除并替换为当前使用的AppEngine SDK中的版本解决了此问题

您可以在eclipse插件目录下找到labs jar:
appengine java sdk-[X.X.X.X]\lib\impl


一旦你更换了jar,你应该会笑了。

我最近也遇到了同样的问题,我开始着手一个使用1.7.1 API的现有AppEngine项目。我使用最新的插件(在撰写本文时为1.7.2.1)创建了一个新的eclipse设置

在我的例子中,在构建路径中有一个旧版本的labs jar(
appengine api labs.jar
)。将其删除并替换为当前使用的AppEngine SDK中的版本解决了此问题

您可以在eclipse插件目录下找到labs jar:
appengine java sdk-[X.X.X.X]\lib\impl


一旦你更换了jar,你就可以做一个干净的构建,你应该会笑起来。

我怀疑你有一些类是用旧的SDK版本构建的。你试过清理你的项目并重新编译吗?是的,我清理了项目并删除了构建中生成的所有内容。同样的问题。我通过遍历构建路径,删除任何1.7.1或1.7.1.1,并在WEB-INF/lib中执行同样的操作,解决了这个问题。奇怪的是,尽管我在Eclipse中选择了1.7.2作为Google下的SDK,但它仍然以1.7.1的形式发布。如果我手动更改了启动配置中的参数,它会抱怨应该是1.7.1,然后又恢复了。然后,我删除了所有1.7.1和1.7.1.1 sdk,重新选择了1.7.2,再次清理了所有内容,然后一切正常。我怀疑您有一些使用旧sdk版本构建的类。你试过清理你的项目并重新编译吗?是的,我清理了项目并删除了构建中生成的所有内容。同样的问题。我通过遍历构建路径,删除任何1.7.1或1.7.1.1,并在WEB-INF/lib中执行同样的操作,解决了这个问题。奇怪的是,尽管我在Eclipse中选择了1.7.2作为Google下的SDK,但它仍然以1.7.1的形式发布。如果我手动更改了启动配置中的参数,它会抱怨应该是1.7.1,然后又恢复了。然后我删除了所有1.7.1和1.7.1.1 sdk,重新选择了1.7.2,我从appengine.google.com下载了我的应用程序,使用:
appcfg.cmd-A-V download\u app c:\appname
,并尝试使用:
dev\u appserver.cmd--port=8888 c:\appname\version
运行它,我收到了
警告:失败的appstats:java.lang.NoClassDefFoundError:com/google/appengine/Api/memcache/memcacheserviceeexception
我的问题是,我不知道我在哪个版本的SDK中构建了原始版本……而且我不再有源代码(这就是为什么我试图对其进行反向工程!)是否存在存储所用版本的日志文件或xml文件?我已使用以下命令从appengine.google.com下载了我的应用程序:
appcfg.cmd-A-V download\u app c:\appname
,并尝试使用以下命令运行它:
dev\u appserver.cmd--port=8888 c:\appname\version
,我收到
警告:失败的appstats:java.lang.NoClassDefFoundError:com/google/appengine/a pi/memcache/memcacheserviceeexception
我的问题是,我不知道我在哪个版本的SDK中构建了原始版本……而且我不再有源代码(这就是为什么我试图对其进行反向工程!)是否有任何日志文件或xml文件存储使用的版本?