Jersey: Returning 400 error instead of 500 when given invalid request body

前端 未结 4 1956
予麋鹿
予麋鹿 2021-02-18 15:24

I\'m using Jersey\'s integrated Jackson processing to transform incoming JSON to a POJO, e.g.:

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response newCus         


        
4条回答
  •  鱼传尺愫
    2021-02-18 16:05

    I tried mapping status 500 to status 400 with HolySamosa's answer but the exception was not caught by this mapper, and status 500 was still being returned.

    After debugging I found that JsonParseException is being thrown and not UnrecognizedPropertyException. This is because I was sending some garbage text (that was not JSON at all).

    When I sent a proper JSON from client side, with format that was not appropriate for my DTO on the server side, then I got UnrecognizedPropertyException. So there are two cases for this:

    • when you send garbage that is not JSON and
    • when you send JSON, but it is not a match for your DTO class.

    Now I am returning status 400 for both.

提交回复
热议问题