我正在对使用 HTTP POST 和 Servlet 在两个系统之间发送 XML 的 Java 应用程序进行故障排除。我怀疑问题在于 XML 变得太大了。这可能是问题吗?有限制吗?
当它不起作用时,request.getParameter("message")
消费者端将返回 null。这两个应用程序都在 TomCat 上运行。例如,大小为 1.73mb 的 XML 文档将无法通过。
根据这个,您的<Connector>
.
maxPostSize = 将由容器 FORM URL 参数解析处理的 POST 的最大大小(以字节为单位)。可以通过将此属性设置为小于或等于 0 的值来禁用此限制。如果未指定,则此属性设置为 2097152(2 兆字节)。
编辑 Tomcat 的 server.xml。在<Connector>
元素中,添加一个属性maxPostSize
并设置一个更大的值(以字节为单位)以增加限制。
话虽如此Post data too big
,如果这是问题所在,您应该在 in tomcat的行中遇到异常
HTTP POST 请求没有定义的最大大小。如果您注意到这样的限制,那么这是您的 HTTP 服务器/客户端的任意限制。
如果您告诉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 版本添加这个 ->
服务器:tomcat:max-http-form-post-size:10MB