0

我和这个人有完全相同的问题:

https://groups.google.com/forum/#!topic/google-appengine-java/4y90M9NlWsA

但没有回应,我在互联网上看不到任何其他有帮助的东西。有谁知道为什么会发生这种情况?

    RemoteApiOptions options = new RemoteApiOptions()
        .server("localhost", 8888)
        .credentials("blah@blah.blah", "");
    RemoteApiInstaller installer = new RemoteApiInstaller();
    installer.install(options);

堆栈跟踪是:

Exception in thread "main" java.io.IOException: unexpected response from remote api: {rtok: null, app_id: MyCorrectAppId}

at com.google.appengine.tools.remoteapi.RemoteApiInstaller.getAppIdFromServer(RemoteApiInstaller.java:326)
at com.google.appengine.tools.remoteapi.RemoteApiInstaller.loginImpl(RemoteApiInstaller.java:278)
at com.google.appengine.tools.remoteapi.RemoteApiInstaller.login(RemoteApiInstaller.java:239)
at com.google.appengine.tools.remoteapi.RemoteApiInstaller.install(RemoteApiInstaller.java:106)
at uk.blah.blah.MyClass.main(MyClass.java:114)
4

2 回答 2

1

根据方法的代码,当在响应正文中找不到属性时,可以抛出异常。而且似乎在您的情况下,它可能与PAIR_REGEXP模式不匹配,即它包含除数字、小写字母、波浪号、下划线或减号以外的任何字符。RemoteApiInstaller.getAppIdFromServerunexpected response from remote apiapp_idMyCorrectAppId

于 2013-11-05T12:40:10.943 回答
1

我注意到您已将appengine-web.xml<application>中的元素设置为. 那就是问题所在。正如 Eugene 正确指出的那样,ID 必须全部小写,例如. 引用 Dan Sanderson 的书Programming Google App EngineMyCorrectAppIdmycorrectappid

由于域名中使用了应用ID,因此ID只能包含小写字母、数字或连字符,并且必须小于32个字符。此外,Google 将每个 Gmail 用户名保留为只有相应的 Gmail 用户才能注册的应用程序 ID。

如果您在 Eclipse 中工作,则需要记住在设置新的 Web 应用程序项目时(“新建 Web 应用程序项目”对话框底部有一个选项,允许您指定 ID 而不是将其留空) .

在此处输入图像描述

对于独立环境,如果您将 ID 留空(默认为“no_app_id”),我认为您可能没问题。

希望有帮助!

于 2013-11-05T12:08:29.880 回答