HttpResponseException: 500 内部服务器错误

HttpResponseException: 500 Internal Server Error

几个星期以来,我一直在使用 Google App Engine 插件将 eclipse 转换为 "Generate Cloud Endpoint Client Library",并且效果很好。今天,它完全停止工作并响应 "An error occurred while attempting to generate the client libraries. See the error log for more details"。错误日志指示 "HttpResponseException: 500 Internal Server Error".

这发生在我数周未触及且昨天运行的代码上,在 Eclipse 和 Windows 没有任何更新的环境中。

我已经在三台计算机上进行了尝试,其中一台是全新安装的 Eclipse 和 GAE Plugin For Eclipse。然后,我通读了 Whosebug,似乎这个问题偶尔会出现在 Google 方面。那么,Google这边是不是还有什么问题?如果有,请尽快修复。

另外,未来有没有计划提供一个本地插件,让开发者可以在本地生成代码?或者,是否有一个网站显示 Google 一方似乎已损坏的组件状态?

谢谢

计算机信息:

Windows 8.1 x64
Eclipse Luna (4.3)
GAE Plugin For Eclipse (3.8.0v201410302155-rel-r42)
App Engine SDK 1.9.19 and 1.8.8 (I tried both independently)

Eclipse 错误信息.........

留言:

Unexpected Exception

异常堆栈跟踪:

java.lang.reflect.InvocationTargetException
    at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction.run(GenerateSwarmApiAction.java:82)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 500 Internal Server Error
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:201)
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:320)
    at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:444)
    at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction.run(GenerateSwarmApiAction.java:80)
    ... 1 more
Caused by: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 500 Internal Server Error
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at     com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createCli    entLibFromApiConfig(SwarmApiCreator.java:199)
    ... 4 more

会话数据:

eclipse.buildId=4.4.2.M20150204-1700
java.version=1.8.0_05
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product com.android.ide.eclipse.adt.package.adtproduct
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product com.android.ide.eclipse.adt.package.adtproduct -clean

我已经在 google 发布了错误报告: https://code.google.com/p/googleappengine/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log&groupby=&sort=&id=12150

Google 已响应以下解决方法: https://cloud.google.com/appengine/docs/java/endpoints/endpoints_tool#generating_a_client_library_bundle_from_a_backend_api

简而言之,假设:

  • Windows OS
  • Eclipse(任何版本)
  • Maven 输出(如果您喜欢,请将 Maven 替换为 gradle)
  • Appengine SDK 1.9.19(尽管其他应该可以)
  • 您的 WEB-INF 文件夹位于 c:\myproject\war
  • 您的端点 API 包含 com.myproject.MyApiClass 和 com.myproject.MyApiClass2
  • 您想将客户端库输出到 c:\

然后您可以通过执行以下操作在本地生成客户端库:

  1. 运行 命令提示符“作为管理员
  2. 在命令提示符中,切换到包含您的应用程序引擎的目录-java-sdk

    cd C:\Eclipse\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.9.19\appengine-java-sdk-1.9.19\bin

  3. 生成库

    enpoints.cmd get-client-lib --war=c:\myproject\war --build-system=maven --output=c:\ com.myproject.MyApiClass com.myproject.MyApiClass2

注意,输出到 c:\ 要求命令提示符为 运行 作为管理员并且 API 中的两个 类 由空格分隔。

此外,如果您没有提供输出,则客户端库 zip 文件位于您从中执行命令提示符的同一目录中 (C:\Eclipse\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.9.19\appengine-java-sdk-1.9.19\bin 如果您完全按照说明操作)