1. 程式人生 > >org.springframework.http.converter.HttpMessageNotReadableException:

org.springframework.http.converter.HttpMessageNotReadableException:

HttpMessageNotReadableException報錯解決方法


後臺報錯資訊:

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public ins.framework.web.ApiResponse com.sinosoft.agency.insurer.api.InsurerApi.query(com.sinosoft.agency.insurer.vo.SabGInsurerVo)

前臺報錯資訊:

error:"Bad Request"
exception:"org.springframework.http.converter.HttpMessageNotReadableException"
message:"Required request body is missing: public ins.framework.web.ApiResponse com.sinosoft.agency.insurer.api.InsurerApi.query(com.sinosoft.agency.insurer.vo.SabGInsurerVo)"
path:"/standards/cooperativePartner/query"
status:400
timestamp:1544684616270

原因:
報錯時:後臺程式碼

	@RequestMapping(value="/query",method = RequestMethod.POST)
	@CrossOrigin
	public ApiResponse query(@RequestBody SabGInsurerVo vo){
		ResultPage<SabGInsurerVo> result = insurerService.querySUBByUpperComCode(vo);
		return new ApiResponse(result);
	}

改錯後的程式碼:去掉@RequestBody的註解

	@RequestMapping(value="/query",method = RequestMethod.POST)
	@CrossOrigin
	public ApiResponse query(SabGInsurerVo vo){
		ResultPage<SabGInsurerVo> result = insurerService.querySUBByUpperComCode(vo);
		return new ApiResponse(result);
	}

剛開始我以為是資料庫的欄位和VO實體類的欄位不一致導致的,一致在糾結我在實體類中新增的新的變數跟資料庫的查詢有什麼關係,拿著問題在百度爬爬唄,就看到有提示:註解可能導致的,忽然看到自己的傳入的物件上面有註解,我就把註解去掉,試試結果就通了,資料正常傳入前端並正常顯示。

@requestBody這個標籤在post 、put 方法中用於接收json格式的資料

@requestParam這個標籤接收的是key-value形式的引數。

發生這個錯誤有很大程度上是因為接值時候用的標籤不對,不應該用@requestBody標籤。