我有一个针对Google Cloud SQL实例的Google App Engine项目 (一个API)。 我有在本地运行的API和SQL实例的确切副本。
当我在开发(本地)上执行项目时,可以很好地探索API。 但是,当我进行部署时,所有呼叫都返回为空。
这是API代码(Java):
@ApiMethod(
name = "test.users.list",
path = "test/users/list",
httpMethod = "get"
)
public UserList testUserList ()
{
UserList users = UserList.getAll();
return users;
}
这是它返回本地的内容 :
{
"users": [
{
"id": "3",
"firstName": "Test",
"lastName": "User",
"email": "[email protected]",
"password": "12fc892642c48a8227410f5b6722e1edeeefedfb",
"logins": 0,
"lastLogin": 0,
"roles": [
{
"id": "1",
"name": "user",
"loaded": true
}
],
"fullName": "Test User",
"admin": false,
"lastLoginDat": "1969-12-31T21:00:00.000-03:00",
"loaded": true
},
{
"id": "6",
"firstName": "Test",
"lastName": "User 2",
"email": "[email protected]",
"password": "c5bc2a33ddffcfb3d61779ab44d7d933e1336b02",
"logins": 0,
"lastLogin": 0,
"fullName": "Test User 2",
"admin": false,
"lastLoginDat": "1969-12-31T21:00:00.000-03:00",
"loaded": true
}
]
}
这是它在服务器资源管理器上返回的内容:
{
"kind": "myapp#usersItem",
"etag": "\"l4AE0sdQvyB-SkumpjWQFJVUZzo/MSGC-asdfasdf\""
}
一些见解:
我真的不知道该怎么办或检查。 我已经搜索了类似的内容,但找不到任何相关的内容。
任何想法表示赞赏。
正如Jan所指出的,GAE本地化和生产是两个独立的故事。 但是,我将为您提供比此特定解决方案更好的东西,这是解决此问题和其他问题的工具:
1.转到控制台>计算> App Engine>版本,并确保您上传的后端版本是正确的版本(请查看其上传时间),并且已选择或默认 。
2.创建一个API测试方法 ,该方法对数据库执行相当基本的操作,但不调用其他方法也不使用try / catch块。 您正在尝试在此处引发异常(如果有)。 击中数据库并返回数据所需的所有代码都应在该方法内部。
3.转到资源管理器面板,然后执行您的测试方法。 如果可行,那么您的问题不在于连接,而在于逻辑。 使用与(2)相同的方法测试逻辑。
4.如果该方法不起作用,请转至:控制台>监视>日志。 在这里,您将找到异常跟踪 。