这可能需要比我提供的更多信息,但由于我不知道发生了什么,我将从我所知道的开始。
我正在使用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>
答案 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)。我目前正在寻找旧版本的客户端。