将 [=s10=] 升级到 2.3.11 RELEASE 后获取 HttpMessageNotReadableException

Getting HttpMessageNotReadableException after upgarding spring to 2.3.11RELEASE

以前的版本: springCloudVersion = "Greenwich.RELEASE" springBootVersion = "2.1.13.RELEASE"

升级版本: springCloudVersion = "Hoxton.SR3" springBootVersion = "2.3.11.RELEASE"

Spring代码:

  @RequestMapping(method = RequestMethod.POST, value = "valuemodified", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  public ResponseEntity<OutputResource> processRequest(@RequestBody String jsonString) {

邮递员电话:

升级后出错:

org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public TestController.processRequest(java.lang.String)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:161)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131)
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

我尝试过的东西:

  1. 尝试使用后映射而不是请求映射。
  2. 使用了不同的媒体类型 但是 none 起作用了。

如有任何帮助,我们将不胜感激。

问题已解决。我们对请求进行了包装。

我仍然不知道提到的两个 spring 启动版本之间发生了什么变化,但正在阅读 servletRequest。 CachingRequestWrapper 中的 parameterMap 解决了这个问题。

我在这里找到的东西:@RequestParam with content type application/x-www-form-urlencoded not working in Spring Boot 2.2