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