1

Java を使用して Google App Engine 用のアプリを作成しています。特定のサーブレットは、32 メガバイトの制限を超える可能性のある応答を生成します。開発サーバーでは、これによって問題が発生することはないようです。運用サーバーでは、応答を複数の要求に分割する方法が必要です。

制限を超えたときに本番サーバーで何が起こるか知りたいです。制限を超えたらPrintWriter投げますか?IOExceptionそれとも、サーブレットが終了したときにのみ例外がスローされますか? 理想的には、各セクションを追加する前に合計応答サイズを計算できるようにしたいと考えています (HTTP ヘッダーのサイズがわからないため、自分でバイト数を数えることはありません)。応答 (つまり、"}" を追加して JSON オブジェクトを完成させます)。または、この種の状況を処理するためのより良い方法はありますか?

4

1 に答える 1

0

現在の応答サイズの制限は 32MB です。

アプリ エンジンは応答データをバッファリングするため、コードの実行が完了するまで応答が表示されないため、例外を発生させたり、コードがキャッチできるエラーを通知したりすることはできません。代わりに、次のような本文で 500 をクライアントに返します。

HTTP 応答が大きすぎました: 34000134。制限は 33554432 です。

http://shell.appspot.com/でこれを実行して、自分で試すことができます。

print 'x' * 34 * 1000 * 1000

于 2011-07-07T16:55:50.083 に答える