一尘不染

Grails JSON最大长度

tomcat

我知道JSON字符串通常具有在PHP上的任一Apache中定义的最大长度,但是在Grails中使用TomCat定义的JSON字符串的最大长度在哪里?

我要发送的JSON字符串的长度为13,636个字符,但是我可以将其缩短很多(尽管在测试时我不想这样做)-而且,将来我们可能会通过JSON发送图像,读取需要base64编码,因此需要大量开销。如果我们要做这样的事情,那么我担心如果此限制导致了问题,那么我们现在应该克服这一问题。

如果没有限制,那么 也许我做错了 。我使用有限数量的域对象,我使用JSON将其编码为JSON-使用循环domainInstance as grails.converters.deep.JSON来完成for,每次将JSON字符串附加到StringBuilder

然后,在使用的视图中渲染StringBuilder,render(stringBuilder.toString())第一个JSON字符串很好,但是第二个JSON字符串在结尾处被截断。如果要客串,我会说我得到StringBuilder总长度的80%左右。

编辑/解决方案 :抱歉,男孩和女孩,我注意到当我view source在页面上时,会获得完整的JSON字符串,但是当我仅查看页面时,它就会被截断。这是一个奇怪的错误,不过我会接受有关其为何被截断的答案。谢谢。


阅读 215

收藏
2020-06-16

共1个答案

一尘不染

还有 就是 在Tomcat中最大尺寸的POST请求,您可以用以后,如果你开始发送庞大的JSON / Base64编码图像的请求(如你所提到的)有关。

tomcat的默认值为2,097,152字节(2
MB);可以通过在server.xml中设置maxPostSize属性来更改它<Connector>

从文档(适用maxPostSize于Tomcat
7):

容器FORM
URL参数解析将处理的POST的最大大小(以字节为单位)。可以通过将此属性设置为小于或等于0的值来禁用该限制。如果未指定,则将该属性设置为2097152(2兆字节)。

如果要将Grails war部署到独立的Tomcat实例,则配置起来非常简单。但是,如果您使用的是tomcat
插件,那么我对实际配置server.xml的了解不多。如果是我,我可能只会使用war而不是grails
run-app来运行大文件测试。

2020-06-16