Java SpringBoot—是否可以根据成功的情况从web服务返回文件或xml?

Java SpringBoot—是否可以根据成功的情况从web服务返回文件或xml?,java,spring-boot,Java,Spring Boot,我的任务是创建一个从Azure存储帐户获取文件的web服务 成功后:将文件作为有效负载返回 出错时:返回xml响应 xml响应将包含请求的副本、错误代码和消息等,因为用户需要一条有用的错误消息来解释发生了什么 我可以找到如何返回单个对象/媒体类型的说明,但不能根据条件返回多个类型 这可能吗?感谢Abhijeet的评论,通过异常处理程序解决了这个问题 -添加contentType很重要,否则默认情况下会返回JSON @ControllerAdvice public class MyExceptio

我的任务是创建一个从Azure存储帐户获取文件的web服务

成功后:将文件作为有效负载返回

出错时:返回xml响应

xml响应将包含请求的副本、错误代码和消息等,因为用户需要一条有用的错误消息来解释发生了什么

我可以找到如何返回单个对象/媒体类型的说明,但不能根据条件返回多个类型


这可能吗?

感谢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);
  }
}
@ControllerAdvice
公共类MyExceptionHandler{
@ResponseStatus(HttpStatus.I_AM_A_茶壶)
@ExceptionHandler(MyException.class)
@应答器
ResponseEntity异常处理程序(MyException e){
InvoiceArchiveResponse responseObject=e.getResponseObject();
返回ResponseEntity.badRequest()
.contentType(MediaType.parseMediaType(“应用程序/xml”))
.主体(响应对象);
}
}

谢谢

上述情况是可能的。参考ah ok,那么通过异常可以返回不同的消息类型?谢谢,我不知道您可以从控制器外部向客户端返回消息!我还在callicoder示例中发现了这座建筑,如果它对任何人都有帮助的话