为Cloud Endpoints类生成API元数据失败

时间:2014-05-09 15:53:45

标签: java android eclipse google-app-engine google-cloud-endpoints

我正在谷歌appengine的Android应用程序的后端工作从几个月到现在。直到昨天,一切都很顺利。 我在最近2个月没有生成端点,但是当我昨天尝试这样做时,错误出现了。

那是场景。

  1. 从Android IDE(Eclipse 4.2),我点击“生成云端点” 客户端图书馆'。
  2. 我要等很多时间......
  3. 出现错误(我将粘贴下面的堆栈跟踪)。
  4. 预期输出 - >在我的android项目中一切正常和我的新端点库。
    实际输出 - > (下面的堆栈跟踪)。

    我正在使用Ubuntu 13.04 64bit的计算机上工作。 我尝试了3种不同版本的appengine sdk(1.9.2,1.9.3,1.9.4)

    报告的问题是:

    > com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request
    {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}}    *AppName*-AppEngine     Unknown Google App Engine Cloud Endpoints Problem Marker
    

    堆栈跟踪就是这个:

    > java.lang.reflect.InvocationTargetException
        at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:82)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
    Caused by: com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request
    {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}}
        at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:144)
        at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:258)
        at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:444)
        at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:80)
        ... 1 more
    Caused by: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request
    {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}}
        at com.google.appengine.repackaged.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1054)
        at com.google.api.server.spi.tools.CloudClientLibGenerator.postRequest(CloudClientLibGenerator.java:53)
        at com.google.api.server.spi.tools.CloudClientLibGenerator.generateClientLib(CloudClientLibGenerator.java:44)
        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:142)
        ... 4 more
    

    我已多次尝试清理和构建项目,并在新构建之前手动删除旧的* .api * .discovery文件,但似乎没有任何工作。

    你能帮帮我吗?谢谢

1 个答案:

答案 0 :(得分:1)

最后我解决了我的问题。 错误发生在其中一个端点中的方法中,该端点具有参数a com.google.appengine.api.datastore.Blob

为了找到我手动(从终端)执行的问题,创建了云端点库,能够看到更详细的输出线,从而找出遇到麻烦的端点。 (要了解如何操作,请阅读"使用endpoint.sh生成客户端库" there