小编use*_*782的帖子

Spring MVC + StreamingResponseBody - 异常导致 HTTP OK

我在 Spring MVC 控制器中遇到了一个关于 StreamingReponseBody 的奇怪问题。简单的控制器代码:

    @RestController
    public class ServerController {

    @GetMapping("test")
    StreamingResponseBody test(HttpServletResponse response) {
        response.setContentType("text/csv");
        response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"test.csv\"");


        return outputStream -> {
            for (int i = 0; i < 5000; i++) {
                outputStream.write("Hello".getBytes());
                outputStream.write("\n".getBytes());
            }

            try {
                Thread.sleep(2000L);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (true) {
                throw new RuntimeException("wrong");
            }
            for (int i = 0; i < 5000; i++) {
                outputStream.write("Hello2".getBytes());
                outputStream.write("\n".getBytes());
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

再加上一个控制器建议:

@ControllerAdvice
public class CustomControllerAdvice {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleInternalServerError(Exception …
Run Code Online (Sandbox Code Playgroud)

java streaming exception spring-mvc spring-boot

9
推荐指数
1
解决办法
2701
查看次数

标签 统计

exception ×1

java ×1

spring-boot ×1

spring-mvc ×1

streaming ×1