【问题标题】:Getting HttpMessageNotReadableException after upgarding spring to 2.3.11RELEASE将 spring 升级到 2.3.11 RELEASE 后出现 HttpMessageNotReadableException
【发布时间】:2021-06-18 11:22:59
【问题描述】:

以前的版本: springCloudVersion = "格林威治.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. 使用了不同的媒体类型 但没有一个奏效。

任何帮助将不胜感激。

【问题讨论】:

标签: spring spring-boot upgrade


【解决方案1】:

问题已解决。我们有一个围绕请求的包装器。

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

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

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 2021-10-15
    • 2023-03-16
    • 2015-06-01
    • 2015-03-25
    • 2023-04-07
    相关资源
    最近更新 更多