Google Cloud Endpoints JS客户端无法加载 - 使用损坏的URL获取404

时间:2014-05-23 04:08:05

标签: google-app-engine google-cloud-endpoints

这可能需要比我提供的更多信息,但由于我不知道发生了什么,我将从我所知道的开始。

我正在使用GAE和Google Cloud Endpoints。

我的API在从API资源管理器访问时加载并运行良好,但在我在Web应用程序中加载时它无法正常工作。

function startApp(user) {

    var appName = 'pwLandlordApp',
        app = packageApp(appName);

    configureApp(app, user);
    angular.bootstrap(document, [appName]);

}

function verifyAuthenticated() {
    gapi.client.oauth2.userinfo.get().execute(function (resp) {

        var authenticated = !resp.code,
            user;

        if (authenticated) {
            user = resp;
            startApp(user);

        } else {
            $('#manualAuthenticationLink').show();
        }

    });
}

function authenticate(immediateMode) {

    var callback = verifyAuthenticated,
        clientId = {
            development: '227265048827-17u88it981ie38hopqr8nl7tnep0d8l2.apps.googleusercontent.com',
            production: '227265048827-5f98s99qoigh8f0tmp106uplek8g7mq5.apps.googleusercontent.com'
        };

    gapi.auth.authorize({
        client_id: clientId.development,
        scope: ['https://www.googleapis.com/auth/userinfo.email'],
        immediate: immediateMode
    }, callback);

}

function authenticateAutomatically() {
    var immediateMode = true;
    authenticate(immediateMode);
}

function authenticateManually() {
    var immediateMode = false;
    authenticate(immediateMode);
}

function loadResources() {

    var appRootUrl = {
            development: 'http://localhost:8080/_ah/api',
            production: 'https://property-management-suite.appspot.com/_ah/api'
        },
        numberOfResourcesToLoad = 2,
        verifyAllResourcesLoaded;

    verifyAllResourcesLoaded = function () {
        numberOfResourcesToLoad -= 1;
        if (numberOfResourcesToLoad === 0) {
            authenticateAutomatically();
        }
    };

    // If loading additional resources change numberOfResourcesToLoad appropriately.
    gapi.client.load('propertyWrasslerApi', 'v1', verifyAllResourcesLoaded, appRootUrl.development);
    gapi.client.load('oauth2', 'v2', verifyAllResourcesLoaded);

}

function init() {
    loadResources();
}

继续收到以下错误。

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/_ah/api/_ah/api/discovery/v1/apis/propertyWrasslerApi/v1/rpc?fields=methods%2F*%2Fid&pp=0

尝试检查我之前认识的早期提交并且问题仍然存在,WTF!所以不确定发生了什么。

请帮忙!已经好几个小时了。

更新

我的web.xml文件。我知道它是空的,但这一直对我有用,因为我只有一个API。

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         version="2.5" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

</web-app>

更新2:

应用服务引擎-web.xml中

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>property-management-suite</application>
    <version>1</version>
    <threadsafe>true</threadsafe>

    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

2 个答案:

答案 0 :(得分:7)

问题似乎与javascript客户端库有关。您是从https://apis.google.com直接加载吗?

更新:这是一个错误。谷歌正在研究它:

https://code.google.com/p/google-api-javascript-client/issues/detail?id=147

答案 1 :(得分:2)

我在python中的应用程序遇到了同样的问题。它似乎是Google Javascript库中的一个问题(apis.google.com/js/client.js)。我目前正在寻找旧版本的客户端。