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 jsonSpring在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) {
}