Java Rest请求在Spring 4.0.8.RELEASE+中使用Hibernate4模块时发出400个错误请求;Hibernate 4.3.7.Final+;2.3.0 com.fasterxml.jackson

Java Rest请求在Spring 4.0.8.RELEASE+中使用Hibernate4模块时发出400个错误请求;Hibernate 4.3.7.Final+;2.3.0 com.fasterxml.jackson,java,rest,jackson,spring-4,hibernate-4.x,Java,Rest,Jackson,Spring 4,Hibernate 4.x,我有一个控制器 @RequestMapping(value = "/getOptimizeLoggerByCP/{cpId}", method = RequestMethod.POST) public @ResponseBody DataTablesResponse<MessageLogger> getOptimizeLoggerByCP(HttpServletRequest request, @PathVariable String cpId,@RequestBody St

我有一个控制器

@RequestMapping(value = "/getOptimizeLoggerByCP/{cpId}", method = RequestMethod.POST)
    public @ResponseBody DataTablesResponse<MessageLogger> getOptimizeLoggerByCP(HttpServletRequest request, @PathVariable String cpId,@RequestBody String json) {
        }
}

解决方法:-我将
@RequestBody String json
替换为与字符串json对应的实际对象,即
@RequestBody dataTableRequest dataTableRequest

@RequestMapping(value = "/getOptimizeLoggerByCP/{cpId}", method = RequestMethod.POST)
        public @ResponseBody DataTablesResponse<MessageLogger> getOptimizeLoggerByCP(HttpServletRequest request, @PathVariable String cpId,@RequestBody DataTablesRequest<MessageLogger> dataTableRequest) {
        }
@RequestMapping(value=“/getOptimizeLoggerByCP/{cpId}”,method=RequestMethod.POST)
public@ResponseBody DataTableResponse getOptimizeLoggerByCP(HttpServletRequest请求、@PathVariable字符串cpId、@RequestBody dataTableRequest dataTableRequest){
}

但我仍然需要了解如何使用@RequestBody String json

Spring在jackson无法在提交的数据和
@RequestBody
参数之间映射时发出
400
。您可能需要将json主体映射到实际对象,而不是一个
字符串
。那么为什么在我删除消息转换器时它会起作用可能是因为hibernate模块不想从一个包含3个字段的对象创建字符串。测试映射到实际与您发送的数据对应的类。
url:- getOptimizeLoggerByCP/REE001
method:- POST
Content-Type:- application/json
Body:-{
    "start": 1,
    "length": 1,
    "draw": 1
}
@RequestMapping(value = "/getOptimizeLoggerByCP/{cpId}", method = RequestMethod.POST)
        public @ResponseBody DataTablesResponse<MessageLogger> getOptimizeLoggerByCP(HttpServletRequest request, @PathVariable String cpId,@RequestBody DataTablesRequest<MessageLogger> dataTableRequest) {
        }