71

我正在对使用 HTTP POST 和 Servlet 在两个系统之间发送 XML 的 Java 应用程序进行故障排除。我怀疑问题在于 XML 变得太大了。这可能是问题吗?有限制吗?

当它不起作用时,request.getParameter("message")消费者端将返回 null。这两个应用程序都在 TomCat 上运行。例如,大小为 1.73mb 的 XML 文档将无法通过。

4

4 回答 4

107

根据这个,您的<Connector>.

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

编辑 Tomcat 的 server.xml。在<Connector>元素中,添加一个属性maxPostSize并设置一个更大的值(以字节为单位)以增加限制。

话虽如此Post data too big,如果这是问题所在,您应该在 in tomcat的行中遇到异常

欲了解更多信息

于 2010-05-31T12:30:45.120 回答
6

HTTP POST 请求没有定义的最大大小。如果您注意到这样的限制,那么这是您的 HTTP 服务器/客户端的任意限制。

如果您告诉XML 有多大,您可能会得到更好的答案。

于 2010-05-31T12:25:51.347 回答
1

取决于服务器和/或应用程序配置,可能会有限制。例如,检查

于 2010-05-31T12:31:15.570 回答
0

是的,最大 2MB 可以通过像这样的配置更改来增加。如果您的 POST 正文不是多部分文件的形式,那么您可能需要在应用程序 yml 配置文件中为 tomcat 添加 max-http-post 配置。

将每个多部分文件的最大大小增加到 10MB,总有效负载大小最大为 100MB

 spring:
    servlet:
      multipart:max-file-size: 10MB
      multipart:max-request-size: 100MB
 

将可能只是字符串格式的表单数据的发布请求的最大大小设置为 ~10 MB

 server:
    tomcat:
        max-http-post-size: 100000000 # max-http-form-post-size: 10MB for new version

您可能需要为最新的 sprintboot 版本添加这个 ->

服务器:tomcat:max-http-form-post-size:10MB

于 2020-08-27T17:54:05.250 回答