【发布时间】:2018-07-18 18:01:31
【问题描述】:
我有一个非常简单的 HTML 表单页面(它是 src/main/resources/public/web.html 中 Spring Boot Web 应用程序的一部分),用于将字符串从 textarea 发布到 Spring Boot Web 应用程序 1.5 版。 2.
<form action="" method="post">
<textarea cols="128" rows="40" name="query"></textarea>
<input value="Send" type="submit">
</form>
以及处理 POST 请求的 SpringBoot 类:
@RestController
public class QueryController {
@RequestMapping(value = "/handle", method = RequestMethod.POST)
protected void handlePost(@RequestBody String postBody) throws Exception {
// Get query from postBody here
}
}
它适用于客户端文本区域中的小字符串。但是,当字符串很大时(例如:带有 HTTP 请求标头:Content-Length:3789333 (3 MB))。 Spring Boot 会抛出这样的异常:
org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: protected void QueryController.handlePost(java.lang.String) throws java.lang.Exception
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:154)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:128)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
我不确定是什么导致了这个问题,我正在使用 Spring Boot 中的嵌入式 Tomcat 运行 Web 应用程序。
【问题讨论】:
标签: java spring spring-mvc spring-boot