Ситуация такова, что мне нужно, чтобы ответ MissingServletRequestParameterException был простым текстом, в то время как в других случаях все должно быть возвращено в json.
Вот что у меня есть в классе контроллера:
@ExceptionHandler(MissingServletRequestParameterException.class)
@ResponseBody
public ResponseEntity<String> handleMissingParams(MissingServletRequestParameterException ex) {
String error = "<html><head><title>Error</title></head><body>"+ ex.getMessage() +"</body></html>";
// return ResponseEntity.badRequest()
// .header(MediaType.TEXT_PLAIN_VALUE)
// .body(error);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.TEXT_PLAIN);
return new ResponseEntity(error, httpHeaders, HttpStatus.BAD_REQUEST);
}
@RequestMapping(method = RequestMethod.GET, path = "/reconciliation/api/getLoginByIntermediaAgent")
public ResponseEntity getLoginsByIA(@RequestParam("ia") String ia) {
return aaaApiStub.getLoginsByIA(ia);
}
В комментируемом разделе вы можете увидеть то, что я тоже попробовал.
Что он возвращает сейчас:
"<html><head><title>Error</title></head><body>Required String parameter 'ia' is not present</body></html>"
Что он должен вернуть:
<html><head><title>Error</title></head><body>Required String parameter 'ia' is not present</body></html>