我正在尝试自定义我的正文错误消息。我的springboot版本是2.1.5.RELEASE我要这个:{"This should be application specific"}但我收到这个:{ "timestamp": "2019-05-24T15:47:10.872+0000", "status": 500, "error": "Internal Server Error", "message": "Not Found (404)", "path": "/github/gifojhuinh4w5"}我的异常类是:@ControllerAdvicepublic class AppExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(Exception.class) protected ResponseEntity<Object> handleConflict(Exception ex, WebRequest request) { String bodyOfResponse = "This should be application specific"; return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request); }}我的班级捕获异常@Controller@EnableAutoConfigurationpublic class GitHub { @RequestMapping(value ="/github/{usuario}", produces = "application/json; charset=UTF-8") @ResponseBody public ResponseEntity<Object> quantidadeRepositorios(@PathVariable(value = "usuario")String usuario) throws IOException { HashMap<String, Integer> map = new HashMap<>(); RepositoryService service = new RepositoryService(); GitHubClient client = new GitHubClient(); Gson gson = new Gson(); client.setOAuth2Token("key"); map.put("Total",service.getRepositories(usuario).size()); // exception captured here return new ResponseEntity<>(gson.toJson(map), HttpStatus.OK); }}
1 回答
智慧大石
TA贡献1946条经验 获得超3个赞
当 ExceptionHandler 捕获到异常时,构建一个响应实体并返回它,如下所示。
创建一个 ErrorResponseDTO 对象并为其设置消息。
public class ErrorResponseDTO {
private String errorMessage;
}
在异常处理程序中,返回该 dto 对象。
@ExceptionHandler(Exception.class)
protected ResponseEntity<Object> handleConflict(Exception ex, WebRequest request) {
ErrorResponseDTO errorDTO = new ErrorResponseDTO();
errorDTO.setErrorMessage("This should be application specific");
return new ResponseEntity<>(errorDTO, HttpStatus.INTERNAL_SERVER_ERROR);
}
这将为您提供您正在寻找的有效载荷。
{
"This should be application specific"
}
添加回答
举报
0/150
提交
取消