[ERROR] IllegalStateException

zizi·2023년 6월 22일
0

오류 정리

목록 보기
6/6
post-thumbnail

방금 해결하게 된 어이없고 부끄러운 오류 정리를 하려고 한다.
언제 비공개로 전환될지 모를 글이다...

상황

sendRedirect()로 커밋 이전의 내역을 불러오려는 코드를 작성한적도 없는데 계속 sendRedirect() 오류가 나타났다.

#controller
	/*첨부파일 다운로드*/
	@GetMapping("/board/download")
	public String download(int boardseq, HttpServletResponse response) {
		
        (생략)
        
        return "redirect:/"
		
	}
#HTML
<img th:src="@{/board/download(boardseq=${board.boardseq})}">
<div>첨부파일<a th:href="@{/board/download(boardseq=${board.boardseq})}" th:text="${board.originalfile}"></a></div>

오류 메세지

java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

원인

security도 살펴보고 서칭해서 redirect 예외처리 코드도 작성했지만(열심히 삽질...🔥) 진짜 원인은!

html에서 이미 경로 설정이 굳어졌는데 컨트롤러 구조가 return 값을 받아서 실행 시 redirect를 중복으로 해버려서 생기는 오류였다.

해결 방법

리턴타입을 void로 리턴을 받지않는 것으로 설정했다.

#controller
	/*첨부파일 다운로드*/
	@GetMapping("/board/download")
	public void download(int boardseq, HttpServletResponse response) {
		
        (생략)
        
	}

나의 생각

몇시간동안 이것저것 찾아봤는데 이런 원인이었다는게 너무 수치스럽다.
처음보는 오류 일수록 간단한 곳부터 살펴보고 애초에! 코드를 짤 때 꼼꼼하게 생각하고 짜자.
오직 기록용으로 반성하는 의미에서 작성한다...😥

무식하게 생각없이 코드를 짠 것을 반성한다. 기초를 더 탄탄히 다져야겠다.

profile
좋았다면 추억이고 나빴다면 경험이다.🍀

0개의 댓글