복붙노트

[SPRING] 컨트롤러에서 응답 방지

SPRING

컨트롤러에서 응답 방지

나는 스프링 부트를 사용하여 좀 더 복잡한 서비스를 모의하고 있습니다. 모든 표준 사례는 쉽게 처리되지만 문제가되는 사례가 있습니다. 이론적으로 응용 프로그램에서 응답을 보내지 않고 연결을 중단하고 닫도록 조롱하고 있습니다.

실제로 내 모의를 추락시키지 않고 봄 부츠에서 이것을 달성하기 위해 여러 가지 시도를했습니다. 여기에는 예외 처리기로 들어가는 예외를 throw하는 것과 거기에서 제대로 응답하지 않는 것이 포함됩니다. 그러나 지금까지는 봄에 의한 오류 응답을 생성했거나 빈 응답으로 어떻게 든 해결되었습니다.

응답없이 닫힌 연결을 발생시키는 @Conroller의 메소드를 갖는 옵션이 있습니까?

해결법

  1. ==============================

    1.연결을 종료하는 것은 HTTP 사양 및 프로토콜의 책임입니다. 프로그래밍 방식으로 적용 할 수는 없습니다. HTTP 클라이언트와 HTTP 서버간에 연결 협상이 진행 중입니다.

    연결을 종료하는 것은 HTTP 사양 및 프로토콜의 책임입니다. 프로그래밍 방식으로 적용 할 수는 없습니다. HTTP 클라이언트와 HTTP 서버간에 연결 협상이 진행 중입니다.

    현재 Thread를 중단 시키거나 Connection Connection : close를 설정할 수는 있지만, Connection과 Request의 처리 부분을 망설이지 않아야합니다. HTTP 서버가 예기치 않게 작동 할 수 있습니다.

    다른 접근 방법을 시도해보십시오. 닫힌 연결을 시뮬레이트해야 할 경우 프로그래밍 방식으로 HTTP 서버의 새 인스턴스를 할당하고 요청을 보류하고 요청 처리를 보류 상태로 설정하고 인스턴스를 종료 할 수 있습니다. 나는 당신이 이것에 대한 더 좋은 방법을 찾을 것이라고 확신합니다. 단지 다른 각도에서 문제의 근원에 도달하십시오.

  2. ==============================

    2.다음과 같은 메소드를 작성할 수 있습니다.

    다음과 같은 메소드를 작성할 수 있습니다.

    @ResponseBody
    @RequestMapping("/your-url")
    public String test() {
        return null;
    }
    

    @Controller를 @RestController로 변경하고 @ResponseBody를 제거 할 수도 있습니다.

  3. from https://stackoverflow.com/questions/50043679/prevent-response-in-controller by cc-by-sa and MIT license