Spring 4.3.10控制器抛出Http 400(错误请求)而Spring 3.1.1工作正常

时间:2017-08-20 01:12:43

标签: java spring-mvc

我们有一个运行Spring 3.1.1的遗留代码。控制器看起来像这样:

   <div>
        <div class="slider__content"
             [class.slider--show-backdrop]="open">
            <div>Header</div>
        </div>

        <div class="slider-backdrop"
             [class.slider--show-backdrop]="open"
             (click)="close()">
        </div>
      </div>

现在,此控制器按预期工作。

我正在将Spring升级到4.3.10。作为此任务的一部分,我在类路径中拥有所有最新的Spring jar和相应的jackson jar。 但是这一次,我收到了Http 400(错误请求)错误。

只看遗留代码,我意识到我们正在将JsonNode作为请求体读取,然后将其映射到要保存的模型。所以我改变了这样的代码:

@RequestMapping(value = "/model/save", method = { RequestMethod.GET, RequestMethod.POST }, headers = "Accept=application/json; charset=utf-8")
@ResponseBody
public ResponseDTO save(@RequestBody JsonNode jsonProperty,  HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
     MyObject myObject = new ObjectMapper().readValue(jsonProperty, MyObject.class);
     // save myObject here
     ... 
}

这种改变非常完美。 我有两个问题:

  1. 遗留代码是否遵循正确的编码标准?
  2. 为什么遗留代码(Spring 3.1.1)在最新的Spring(4.3.10)中不起作用?

0 个答案:

没有答案