我在spring boot服务中有一个rest控制器,如下所示:
公共ResponseEntity getDocContent(String id)
此控制器操作会产生MediaType.Octet_Stream
我想知道当我真的没有字节数组内容而是带错误消息的String时,如果返回非Http OK响应该返回什么。在错误的情况下,我不想生成一个八位位组流,而是生成一个错误的JSon
我可以让服务同时生成八位字节流和application / json,但是如果出现错误,我的困惑是围绕字节数组的返回类型,在这种情况下,我想生成一个Json而不是字节数组
请给我有关如何解决此问题的想法
答案 0 :(得分:0)
添加一个controllerAdvice
来处理RestContoller
中引发的异常。
@ControllerAdvice
public class CustomExceptionHandler extends ResponseEntityExceptionHandler{
@ExceptionHandler(MyException.class)
@ResponseStatus(HttpStatus.CONFLICT) //Just an example code
public ResponseEntity<GeneralMessage> handleGacaException(MyException ex) {
LOGGER.error(ex.getMessage());
GeneralMessage errorMessage = new GeneralMessage(ex.getErrorCode().toString(), ex.getErrorMessage());
return ResponseEntity.status(HttpStatus.CONFLICT).body(errorMessage);
}
}
比将MyException
扔在RestController上。