Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error generating google cloud endpoint client libraries

During last weeks I've been developing an app using GAE/J and Google Cloud Endpoints. I created my custom endpoints (using annotations) and although I had quite a lot of problems, I could solve them and everything was working rather fine.

But now (22/04/2013) I tried to make changes in an endpoint method, and suddenly the Google Eclipse Plugin is not generating the client libraries anymore!

I tried to delete all the generated api files from my project, but nothing worked. I've even downloaded Eclipse again, installed all the last versions of GPE and GAE SDK and started a new project from scratch, but I'm getting the same error...


EDIT: After trying absolutely EVERYTHING, it seems that there must be a problem with Google's end. It seems that GPE uses a CloudClientLibGenerator, which hasn't been working at least for the last...

[ 75 hours ... ]

And now I'm wondering:

  1. Why the hell they need a cloud generator to generate the code of the endpoints, if they have all the necessary info locally (code, libraries, etc...)? or they haven't?
  2. I'm using the free version of GAE, developing an app for the university (my MSc final project), but what if I was developing a real app paying for GAE? Isn't this a bit too shoddy?

Anyway, I think the word is dis-end-ppointment with Endpoints...


Note: I've opened this issue in Google Code.

EDIT: Responses from Google Project Member: "There's currently an issue with Endpoints in general, which is obfuscating any current or prior issues with library generation. I'll update when the current issue is resolved."

"We're working to get the problem fixed ASAP. We will post an update once the problem is resolved."

UPDATE: Some users are now posting comments in the issue above pointing out that the problem is solved! There's no official comment from Google though. Unfortunately I can't check it for the moment...


POSSIBLE WORKAROUND:

You have to change to a previous GAE SDK version. Both 1.7.5 and 1.7.6 are working. You can download Java version from here.

I've tried and the endpoint library generation is working!!! And also the APIs Explorer in the development server, so we can keep developing while waiting for the bug to be fixed, what will happen tomorrow according to Google team...

And suddenly my already deployed endpoints, which were not working, are working again! (although the client generation is still not working with SDK 1.7.7)

EDIT: From Google they're saying that the generation from command line is working as well.


Stacktrace of the exception thrown while trying to generate client libraries (in GPE Error Log):

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
like image 701
MikO Avatar asked Apr 22 '13 22:04

MikO


1 Answers

This is now fixed in GPE 3.2.3, and on the service side. You can now use App Engine 1.7.7.

There is still one issue remaining:

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

and it will be fixed on Monday.

like image 194
Rajeev Dayal Avatar answered Oct 17 '22 15:10

Rajeev Dayal