【问题标题】:HttpMessageNotReadableException errors on my Spring Framework我的 Spring 框架上的 HttpMessageNotReadableException 错误
【发布时间】:2021-06-06 08:42:48
【问题描述】:

我想用 spring 框架向我的数据库发送一个对象。这是我在控制器中的代码:

    @PostMapping("/createBarangByJson")
public ResponseEntity<?> createBarangByJson(@RequestBody RequestUser body)
{
    Integer cDet = crudService.simpleCreateByJson(body);
    return ResponseEntity.ok(cDet);
}

}

我已经为请求类制作了 setter getter,这是我在 DaoImpl 中的代码:

    @Override
public Integer simpleCreateByJson(RequestUser reqUser)
{
    String sql = "INSERT INTO public.jualbeli(nama_barang, kuantitas, harga, tanggal, created_by) VALUES (?,?,?,?,?)";
    Integer result = jdbcTemplate.update(sql, reqUser.getNama_barang(), Integer.parseInt(reqUser.getKuantitas()), Integer.parseInt(reqUser.getHarga()), reqUser.getTanggal(), reqUser.getCreated_by());
    return result;
}

但是当我发送这个数据时:

[
{
    "nama_barang": "buku",
    "kuantitas": "17",
    "harga": "500000",
    "tanggal": "2020-08-01",
    "created_by": "adit"
}

]

错误说:

"timestamp": 1615207817069,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.http.converter.HttpMessageNotReadableException"

有人知道怎么回事吗?

【问题讨论】:

  • 这表明您调用 API 的方式有问题。我会检查服务器上的日志。在“org.springframework.http.converter.HttpMessageNotReadableException”之后可能有更多关于为什么消息不可读的信息。 IE。你发了json?在这种情况下,您需要更改 @PostMapping(path = "/createBarangByJson", consumes="application/json")
  • @AlexanderKatsenelenbogen 是的,我发送 Json 数据并且我已经在我的控制器上使用了 @PostMapping("/createBarangByJson")
  • @AlexanderKatsenelenbogen @PostMapping("/createBarangByJson", consumes="application/json") 你的意思是这样吗?
  • @AlexanderKatsenelenbogen @PostMapping("/createBarangByJson", consumes="application/json") 你的意思是这样吗?

标签: java spring postgresql api postman


【解决方案1】:

您正在发送一个 JSON 数组:

[{
    "nama_barang": "buku",
    "kuantitas": "17",
    "harga": "500000",
    "tanggal": "2020-08-01",
    "created_by": "adit"
}]

你需要发送

{
    "nama_barang": "buku",
    "kuantitas": "17",
    "harga": "500000",
    "tanggal": "2020-08-01",
    "created_by": "adit"
}

你也应该要求

@PostMapping(path="/createBarangByJson", consumes="application/json") 

而不是

@PostMapping("/createBarangByJson")

【讨论】:

    猜你喜欢
    • 2020-04-01
    • 2013-11-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多