首页 > 解决方案 > 设置响应体以防spring出错

问题描述

我在春天有一个 api,返回一个字节数组。如果发生任何错误,添加响应正文是否合乎逻辑/可能?

例如:

@GetMapping(value = ["path"], produces = ["application/pdf"])
@ResponseBody
fun method(@PathVariable("varib") var: String?,
           request: HttpServletRequest?, response: 
HttpServletResponse?): ByteArray? {

   // some method which will return a byte arrat
    return pdf
}

@ExceptionHandler(RUnTimeException::class)
fun errorHandler(e: Exception,response: ServletRespons) {
response?.setHeader('someheader','value')
}

如果出现异常,是否可以添加响应正文?从'errorHandler'方法内部?合乎逻辑吗?

标签: springexceptionservletskotlin

解决方案


根据您使用的 Spring 版本,您不需要@ResponseBody. 您应该使用一个@ControllerAdvice来帮助管理不同层(存储库、服务、控制器)中的所有异常。您可以定义一个自定义响应消息来代表您的@Responsebody. 我希望这个链接可以帮助你。


推荐阅读