我的任务是创建一个Web服务,该服务从Azure存储帐户中获取文件。
成功:将文件作为有效载荷返回
出现错误:返回xml响应。
xml响应将包含请求,错误代码和消息等的副本,因为用户将需要一条有用的错误消息来说明发生了什么。
我可以找到有关如何返回单个对象/媒体类型,但不能根据条件返回多种类型的说明。
这可能吗?
答案 0 :(得分:1)
通过Abhijeet的评论解决了异常处理程序 -重要的是添加contentType或默认情况下返回JSON
@ControllerAdvice
public class MyExceptionHandler {
@ResponseStatus(HttpStatus.I_AM_A_TEAPOT)
@ExceptionHandler(MyException.class)
@ResponseBody
ResponseEntity<?> exceptionHandler(MyException e){
InvoiceArchiveResponse responseObject = e.getResponseObject();
return ResponseEntity.badRequest()
.contentType(MediaType.parseMediaType("application/xml"))
.body(responseObject);
}
}
谢谢!