2011-09-15 145 views
3

我知道JSON字符串通常在PHP上的Apache中定義了最大長度,然而,使用TomCat在Grails中定義的JSON字符串的最大長度在哪裏?Grails JSON最大長度

我發送的JSON字符串長度爲13,636個字符,但是我可以縮短很多(儘管我不想在測試時) - 也可能在將來通過JSON發送圖像我讀過的書需要base64編碼,因此需要相當大的開銷。如果我們要做這樣的事情,那麼我擔心如果這個限制導致問題,那麼我們現在應該克服這個問題。

如果沒有限制,那麼也許我做錯了。我有我使用domainInstance as grails.converters.deep.JSON編碼如JSON域對象的一個​​有限量 - 這是使用一個for環並且每個JSON字符串被附加到StringBuilder

時間我然後使用render(stringBuilder.toString())渲染在視圖中的StringBuilder和完成第一個JSON字符串很好,但是第二個JSON字符串被截斷接近尾聲。如果我想知道我會說我在StringBuilder總長度的80%左右。

編輯/解決方案:道歉傢伙&女孩,我注意到,當我view source在頁面上我得到完整的JSON字符串,但是當我剛看到它的截斷頁。這是一個奇怪的錯誤,但我會接受爲什麼它被截斷的答案。謝謝。

回答

3

There is Tomcat中POST請求的最大尺寸,如果您開始發送巨大的JSON/Base64圖像請求(如您所述),稍後您可能會關注它。

tomcat中的默認值是2,097,152字節(2 MB);可以通過在server.xml中設置<Connector>maxPostSize屬性來更改它。

From the docs(用於maxPostSize Tomcat的7):

在將由 容器FORM URL參數解析處理的POST的字節的最大大小。該限制可以通過 將該屬性設置爲小於或等於0的值來禁用。如果未指定 ,則此屬性設置爲2097152(2兆字節)。

如果您正在將Grails戰爭部署到獨立的Tomcat實例,那麼配置就非常簡單。但是,如果您使用的是tomcat plugin,則無法找到實際配置server.xml的更多信息。如果是我,我可能會使用war而不是使用grails run-app來運行大文件測試。

+0

乾杯Rob!我目前只使用'grails run-app',但在開始部署之前會進行徹底測試。 :) – krslynx