2011-09-15 7 views
3

JSONの文字列は、ApacheのPHPで定義された最大長を持つことがよくありますが、TomcatでGrailsで定義されているJSON文字列の最大長はどこですか?Grails JSONの最大長

送信するJSON文字列の長さは13,636文字ですが、私はそれを短くすることができます(私たちがテストしている間は望めませんが)。また、今後JSON経由で画像を送信するかもしれません私が読んだのは、base64エンコーディングとかなりのオーバーヘッドが必要です。私たちがこのようなことをするならば、私はこの限界が問題を引き起こしているならば、今克服すべきものだと心配しています。

制限がない場合、おそらく私は何かを間違っています。私はdomainInstance as grails.converters.deep.JSONを使用してJSONとしてエンコードしていたドメインオブジェクトの有限量を持っている - これは私が、その後render(stringBuilder.toString())を使用してビュー内のStringBuilderをレンダリングし、forループやJSON文字列がStringBuilder

に追加されるたびに使用して行われます最初のJSON文字列は問題ありませんが、2番目のJSON文字列は最後まで切り捨てられます。もし私がゲストになったら、私はStringBuilderの全長の約80%を得ていると言います。

EDIT/SOLUTION:謝罪みんな&女の子は、私はページ上のview sourceは、私は完全なJSON文字列を取得する場合は、しかし、私はちょうどそれが切り捨てられていますページを表示するときに気づきました。それは奇妙なエラーですが、私はなぜそれが切り捨てられているのかについての回答を受け付けます。ありがとう。

答えて

3

です。POSTリクエスト用のTomcatの最大サイズです(前述のように、後でJSON/Base64イメージの巨大なリクエストを送信すると心配するかもしれません)。

tomcatのデフォルト値は2,097,152バイト(2 MB)です。 server.xmlの<Connector>maxPostSize属性を設定することで変更できます。 (Tomcatの7 maxPostSize用)

From the docs

コンテナFORM URLパラメータ解析によって処理されるPOSTのバイト単位の最大サイズ。 によってこの属性を0以下の値に設定すると、制限を無効にすることができます。 が指定されていない場合、この属性は2097152(2メガバイト)に設定されます。

これは、Grailsの戦争をスタンドアロンのTomcatインスタンスにデプロイする場合には非常に簡単です。しかし、tomcat pluginを使用している場合は、実際にserver.xmlを設定することについてはほとんど分かりません。それが私だったら、grails run-appではなく、warを使って大ファイルテストを実行するだけだろう。

+0

乾杯!私は現在 'grails run-app'しか使っていませんが、展開を開始する前に十分にテストします。 :) – krslynx