我正在使用app引擎后端创建一个Android应用程序。我使用谷歌应用程序引擎插件来创建一个Android连接的应用程序。这是我的实体。
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class User {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Long id;
@Persistent
String email;
@Persistent
String password;
我使用插件生成我的端点。为了测试它,我将app引擎作为Web应用程序运行,我可以成功地使用每个方法。我导航到
http://localhost:8888/_ah/admin/datastore
我可以看到我输入的记录。为了确保生成的getUser方法有效,我转到API资源管理器并检索id = 1的用户并获得
{ “id”:“1”, “email”:“this@that.com”, “密码”:“1234” }
所以我知道它有效。在我的Android应用程序中,我连接到端点,如下所示:
User user = new User();
Userendpoint.Builder endpointBuilder = new Userendpoint.Builder(AndroidHttp.newCompatibleTransport(), new JacksonFactory(), new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) {
}
});
Userendpoint endpoint = CloudEndpointUtils.updateBuilder(endpointBuilder).build();
try {
User result = endpoint.getUser(1L).execute();
} catch (IOException e) {
e.printStackTrace();
}
我收到以下错误
com.google.api.client.googleapis.json.GoogleJsonResponseException:503服务不可用 { “代码”:503, “错误”:[{ “域名”:“全球”, “message”:“javax.jdo.JDOObjectNotFoundException:无法检索具有密钥User(1)\ nNestedThrowables的种类User实体:\ norg.datanucleus.exceptions.NucleusObjectNotFoundException:无法检索具有密钥User(1)的用户类型的实体” , “reason”:“backendError” }],
非常感谢任何建议或想法!
答案 0 :(得分:1)
错误是我从笔记本电脑连接到开发服务器,但我正在连接到设备上的生产服务器。
更改
// For development server
protected static final String LOCAL_APP_ENGINE_SERVER_URL_FOR_ANDROID = "http://<Your IP>:<your port>/_ah/api";
// For production server
protected static final String LOCAL_APP_ENGINE_SERVER_URL_FOR_ANDROID = "https://<your version>-<your project ID>.appspot.com/_ah/api/";