3

使用官方文档在 Java 中开发 App Engine Endpoints 时,使用适当的参数运行 endpoints.cmd 并在 GAE 中部署后,开发服务器会在 处显示正确的端点http://localhost:8888/_ah/api/discovery/v1/apis,但访问 GAE 上生产版本的资源管理器会显示旧端点https://<my-app>.appspot.com/_ah/api/discovery/v1/apis.

该错误被追溯到HTTP 302生产应用程序的日志中找到的(临时移动的)代码,用于访问/_ah/spi/BackendService.getApiConfigs. 直到清除(即,提供 HTTP 200),Google 的服务器将无法为端点提供服务(请参阅此评论)。

4

1 回答 1

5

此错误的部分原因是文档不一致。虽然官方文档的示例 web.xml 使用了一个<security-constraint>块,但示例 tictactoe 应用程序没有。

如果您收到HTTP 302状态码,请检查以下两件事(来自这篇文章):

  1. 在 WEB-INF 中的 .api 文件中,在声明中更改httphttpsbns
  2. <security-constraint>从您的 web.xml中删除该块。

以上对我有用;不确定安全约束位是关于什么的。也许 GAE 管理员可以改进这个答案?

于 2013-03-06T11:23:48.710 回答