【发布时间】:2011-02-25 23:22:21
【问题描述】:
我正在对使用 HTTP POST 和 Servlet 在两个系统之间发送 XML 的 Java 应用程序进行故障排除。我怀疑问题在于 XML 变得太大了。这可能是问题吗?有限制吗?
当它不起作用时,消费者端的request.getParameter("message") 将返回null。这两个应用程序都在 TomCat 上运行。例如,大小为 1.73mb 的 XML 文档将无法通过。
【问题讨论】:
我正在对使用 HTTP POST 和 Servlet 在两个系统之间发送 XML 的 Java 应用程序进行故障排除。我怀疑问题在于 XML 变得太大了。这可能是问题吗?有限制吗?
当它不起作用时,消费者端的request.getParameter("message") 将返回null。这两个应用程序都在 TomCat 上运行。例如,大小为 1.73mb 的 XML 文档将无法通过。
【问题讨论】:
是的,最大 2MB,可以通过像这样的配置更改来增加。如果您的 POST 正文不是多部分文件的形式,那么您可能需要在应用程序 yml 配置文件中添加 tomcat 的 max-http-post 配置。
spring:
servlet:
multipart:max-file-size: 10MB
multipart:max-request-size: 100MB
server:
tomcat:
max-http-post-size: 100000000 # max-http-form-post-size: 10MB for new version
您可能需要为最新的 sprintboot 版本添加这个 ->
服务器: 雄猫: 最大http-form-post-size:10MB
【讨论】:
可能存在限制,具体取决于服务器和/或应用程序配置。 For Example, check
【讨论】:
根据this,<Connector> 的默认值为 2 MB。
maxPostSize = 将由容器 FORM URL 参数解析处理的 POST 的最大大小(以字节为单位)。可以通过将此属性设置为小于或等于 0 的值来禁用此限制。如果未指定,则此属性设置为 2097152(2 兆字节)。
编辑 Tomcat 的 server.xml。在<Connector> 元素中,添加属性maxPostSize 并设置更大的值(以字节为单位)以增加限制。
话虽如此,如果这是问题所在,您应该在
Post data too big在tomcat中
【讨论】:
HTTP POST 请求没有定义的最大大小。如果您注意到这样的限制,那么这是您的 HTTP 服务器/客户端的任意限制。
如果你告诉 XML 有多大,你可能会得到更好的答案。
【讨论】: