1

我一直在使用带有云端点的 Java 应用引擎来创建 REST api,但突然遇到了这个错误:

WARNING: No discovery doc for API hylytit version v1 in rpc format

我正在尝试将 Javascript 客户端库加载到网页中进行GET调用。在 Web 控制台中,我看到了这个:

GET http://localhost:8888/_ah/api/discovery/v1/apis/hylytit/v1/rpc?fields=methods%2F*%2Fid&pp=0 [HTTP/1.1 404 Not Found 5ms]

我不熟悉 RPC 发现文档是什么,并且在网上找不到太多与 App 引擎和 RPC 相关的具体内容。这就是我调用客户端库的方式:

<script type="text/javascript">
function start() {
    console.log("test.html onLoad function called.");
    var ROOT = "http://localhost:8888/_ah/api";
    gapi.client.load("hylytit", 'v1', function() {
        var req = gapi.client.hylytit.listUrl();
        req.execute(function(data) {
            //Do something with the data.
        });
    }, ROOT);
}
</script>
<script type="text/javascript" src ="https://apis.google.com/js/client.js?onload=start">
</script>

Eclipse 的 App Engine 插件似乎没有生成正确的 RPC 发现文档。知道如何解决这个问题吗?

编辑:我已按照@Jenny 的建议更新到最新版本的 Google Eclipse 插件和 App Engine SDK。我还检查了所有云端点方法是否像@Ashish 建议的那样返回有效类型,但是当我将它作为本地服务器运行时继续得到相同的错误。

有趣的是,当我部署到应用引擎时,我没有任何问题,只是在本地部署。

4

2 回答 2

2

Willma,您最近是否更新了您的 App Engine Eclipse 插件或 SDK?如果您这样做了,请尝试同时更新 Google Plugin for Eclipse。这些插件需要同步,Google Cloud Endpoint Client 库生成才能在 Eclipse 上正常工作。更新两个插件后,客户端库生成应该可以工作。再次将应用程序部署到 App Engine,然后您应该能够根据上面显示的 URL 再次验证。

于 2013-08-22T01:54:17.043 回答
2

确保您具有有效的返回类型。在对 ApiMethod 使用无效的返回类型(布尔值)后,我遇到了同样的问题。请注意,GPE 文档说,“在 Endpoint 方法中,返回值类型不能是 String 或 int 等简单类型。返回值需要是 POJO、数组或集合。”

https://developers.google.com/eclipse/docs/endpoints-addentities

于 2013-08-31T14:58:50.190 回答