生成Google云端点客户端库时出错

Mik*_*ikO 12 google-app-engine google-eclipse-plugin google-cloud-endpoints

在过去的几周里,我一直在使用GAE/JGoogle Cloud Endpoints开发应用程序.我创建了我的自定义端点(使用注释),虽然我遇到了很多问题,但我可以解决它们,一切都工作得很好.

但是现在(2013年4月22日)我尝试在端点方法中进行更改,突然Google Eclipse插件不再生成客户端库了!

我试图从我的项目中删除所有生成的api文件,但没有任何效果.我甚至再次下载了Eclipse,安装了所有最新版本的GPE和GAE SDK并从头开始了一个新项目,但是我得到了同样的错误......


编辑:尝试绝对一切后,似乎谷歌的结局一定存在问题.似乎GPE使用了一个CloudClientLibGenerator,至少在最后一次没有工作...

[75小时......]

现在我想知道:

  1. 为什么他们需要一个云生成器来生成端点代码,如果他们在本地拥有所有必要的信息(代码,库等等)?或者他们没有?
  2. 我正在使用GAE 的免费版本,为大学开发应用程序(我的MSc最终项目),但如果我正在开发一个支付GAE的真实应用程序呢?这不是有点粗制滥造吗?

无论如何,我认为这个词是DIS-最终ppointment与端点...


注意:我在Google Code中打开了此问题.

编辑:Google项目成员的回复:" 目前一般存在端点问题,这会影响当前或以前的库生成问题.我会在当前问题得到解决时更新. "

" 我们正努力尽快解决问题.一旦问题解决,我们将发布更新. "

更新:一些用户现在在上面的问题中发表评论,指出问题已经解决!不过谷歌没有官方评论.不幸的是我暂时无法检查它......


可能的解决方法:

您必须更改为以前的GAE SDK版本.这两个1.7.51.7.6的工作.您可以从此处下载Java版本.

我试过,端点库生成工作!!! 还有开发服务器中的API Explorer,所以我们可以在等待修复bug的同时继续开发,明天根据Google团队会发生什么......

突然间,我已经部署的端点(无法正常工作)再次正常工作!(尽管客户端代仍然无法使用SDK 1.7.7)

编辑:从谷歌他们说,命令行的一代也在运作.


尝试生成客户端库时抛出的异常的堆栈跟踪(在GPE错误日志中):

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:121)
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:242)
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:364)
    at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:84)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction.run(GenerateSwarmApiAction.java:80)
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
Caused by: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request
{"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api error", "debug_info": "Could not parse api"}]}}
    at com.google.appengine.repackaged.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1155)
    at com.google.api.server.spi.tools.CloudClientLibGenerator.postRequest(CloudClientLibGenerator.java:52)
    at com.google.api.server.spi.tools.CloudClientLibGenerator.generateClientLib(CloudClientLibGenerator.java:43)
    ... 41 more
Run Code Online (Sandbox Code Playgroud)

小智 5

现在已在GPE 3.2.3和服务端修复此问题.您现在可以使用App Engine 1.7.7.

还有一个问题:

https://code.google.com/p/google-plugin-for-eclipse/issues/detail?id=191

它将在周一修复.