天天看点

异常处理-DefaultHandlerExceptionResolver

工作中遇到springmvc框架定义的方法中使用了【@RequestBody】 这个注解

代码如下:

@RequestMapping(value = "create", method = RequestMethod.POST)
	@ResponseBody
	public ResultData createOrder(@RequestBody PrintOrders printOrders, HttpServletRequest request) throws JsonGenerationException, JsonMappingException, IOException {
		Integer productId = printOrders.getProductId();
}           

调用接口的时候发生异常

2018-05-07 10:55:59.323 [qtp983814036-76] WARN  o.s.w.s.m.s.DefaultHandlerExceptionResolver - Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "create"

明显说的是转换类型问题, 引起这个问题的原因是@RequestBody ,注解用于读取http请求的内容并通过httpMessageConverter接口将内容绑定到controller的方法参数上,由于我没传printorders的参数,所以转换类型失败。