2011-09-15 107 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