我一直在使用带有云端点的Java app引擎来创建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建议的有效类型,但是当我将其作为本地服务器运行时仍然会出现相同的错误。
有趣的是,当我部署到应用引擎时,我没有问题,只在本地。
答案 0 :(得分:2)
Willma,您最近是否更新了App Engine Eclipse插件或SDK?如果您这样做,请尝试更新Google Plugin for Eclipse。这些插件需要同步才能生成Google Cloud Endpoint Client库,以便在Eclipse上正常运行。更新两个插件后,客户端库生成应该可以正常工作。再次将应用程序部署到App Engine,然后您应该能够根据上面显示的URL再次验证。
答案 1 :(得分:2)
确保您拥有有效的退货类型。 在为ApiMethod使用无效的返回类型(布尔值)后,我遇到了同样的问题。请注意,GPE文档说,“在端点方法中,返回值类型不能是简单类型,如String或int。返回值必须是POJO,数组或集合。”
https://developers.google.com/eclipse/docs/endpoints-addentities