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

Mar*_* M. 3 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();
}
Run Code Online (Sandbox Code Playgroud)

继续收到以下错误.

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
Run Code Online (Sandbox Code Playgroud)

尝试检查我知道有效的早期提交并且问题仍然存在,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>
Run Code Online (Sandbox Code Playgroud)

更新2:

AppEngine上-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>
Run Code Online (Sandbox Code Playgroud)

App*_*par 7

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

更新:这是一个错误.谷歌正在调查:

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

  • 谢啦.认真的谷歌.大家都有这个问题吗? (2认同)