現在、に基づいてホストされているGlassware
アプリケーションを作成しています。すべて順調に進んでいます...ただし、何らかの理由で、POST リクエストを送信したユーザーの Credentials オブジェクトを見つけることができなくなります。Java
Google App Engine
AuthUtil
ユーザーが最初にアプリケーションのホームページに移動し、サインイン/認証すると、Google Account
すべてが完全に機能します。最初のカードがタイムラインに投稿され、サーバーはすべての着信 POSTS に適切に応答します。しかし、サーバーが約 15 ~ 20 分間アイドル状態になると、すべての POST 要求が失敗し始めます。
いくつかのデバッグの後、短時間アイドル状態になったAuthUtil.getCredential
後、ユーザーのオブジェクトを返さなくなったことがわかりました。Credential
これを修正する唯一の方法は、ユーザーに自分のホームページに戻って再サインイン/認証を強制することです。
これは、アプリケーションのサーブレットが「doPost」で使用しているコードのスニペットです。
Notification notification = jsonFactory.fromString(notiString, Notification.class);
String userId = notification.getUserToken();
LOG.info("SERVLET - Request contained user token: " + userId);
Credentials currUser = AuthUtil.getCredential(userId);
if (currUser != null)
{
LOG.info("SERVLET - User found");
}
else
{
LOG.severe("SERVLET - User NOT FOUND");
}
注: すべての着信 POST にユーザーのトークン識別子文字列が含まれていることを確認できます。