2

現在、に基づいてホストされているGlasswareアプリケーションを作成しています。すべて順調に進んでいます...ただし、何らかの理由で、POST リクエストを送信したユーザーの Credentials オブジェクトを見つけることができなくなります。JavaGoogle App EngineAuthUtil

ユーザーが最初にアプリケーションのホームページに移動し、サインイン/認証すると、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 にユーザーのトークン識別子文字列が含まれていることを確認できます。

4

0 に答える 0