tomcat - Tomcat9 / Java11 升级:截断 POST 正文?
问题描述
我最近将 Debian 服务器从 Java 8 / Tomcat 8 更新到 Java 11 / Tomcat 9。我有另一台服务器在 11/9 下运行良好,而我刚刚更新的服务器在 8/8 下运行良好。
但是更新后的服务器似乎一直在截断 POST 请求的主体,如在测试 servlet 中所见。为什么会这样?
测试小服务程序:
public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
System.out.println("got POST");
try{
BufferedReader reader = httpRequest.getReader();
String line = null;
int len = 0;
while((line = reader.readLine()) != null) {
System.out.println(line);
len += line.length();
}
System.out.println("total post body size: " + len);
PrintWriter out = httpResponse.getWriter();
out.print("Hello Post World ");
out.close();
}catch(Exception e) {
System.out.println("error " + e + " " + e.getMessage());
}
}
邮递员控制台显示“内容长度:101200”。使用较短的内容(100 字节),它可以正常工作。servlet 不会引发任何错误 - 上面的日志“[2020-07-29 15:59:56] [info] total post body size: 16067”并且客户端得到了正确的响应。这与 Java 11 和/或 Tomcat 9 中的分块和更改有关吗?
解决方案
推荐阅读
- linux - 为什么 mmap 仍然增加磁盘读取?
- docker - Alertmnager:集群监听地址和广告地址的区别
- c++ - C++ 从 Visual Studio 项目中的所有文件中运行一个 cpp 文件
- c++ - 从用户获取链接列表的值,直到用户按 0,然后在 C++ 中显示输出
- r - 在 Seperate_rows 函数中将负值转换为正值
- c# - 使用 C# WPF 添加数据
- android - Android 图像视图未更新
- flutter - 如何避免动画列表Flutter内的圆形头像卡顿?
- php - 在 2 个不同的 div ID 中有 2 个同名的 HTML 下拉列表,那么如何使用 AJAX/jQuery 提交特定 div ID 的下拉值
- angular - PrimeNG p-multiSelect 未显示所选值