본문 바로가기
Etc/문제해결 기록하기

[프로젝트] 오류 기록 - 1. illegalException의 발생

by pplucy 2021. 2. 3.

 

프로젝트 진행 중에 처음보는 오류가 발생했다...

바로 illegalException ,,, 이미 forward된 request는 다시 커밋할 수 없다고 나왔고

나는 이 어이없는 문제를 자그마치 3일동안 끌고 갔다 ㅠ_ㅠ

 

 

내가 만들었던 controller단의 코드,

여기까지 아~~무 문제가 없다고 생각했던 나

 

 

 

아니, 로그인 클릭시 넘어가는 href를 다 다르게 구성해놨는데 왜 이렇게 뜨는지 정말 알 수가 없었다.

아니 메소드도 다른데.,,? 3일내내 ㅇ0ㅇ이랬더랬다.

 

열심히 구글링을 해본 결과 forward가 아닌 include로 해보라고 해서 

그렇게 했더니 illegalexception은 사라졌지만 

페이지가 중복되는 현상이 발견됐다.

 

 

 

서버 연결 후 화면 조회에 들어갔더니

엥? 이게 뭐람 두 개의 메소드가 모두 불리고 있었고

화면에 두가지 jsp 내용이 뜨는 상황이 발생한 것.

 

 

 

 

 

결국엔 마이페이지도  user/school 나누어 controller를 각 각 구현해보기로 했다.

이때는 illegallException과 중복페이지 오류가 제거되었다.

 

그래서 나는 몇 일을 왜 그런거지? 하고 있던 상태에서 월요일에

각 마이페이지에 또 다른 메소드를 추가하여 서버를 돌렸더니

또 같은 문제가 발생하는 걸 보고 컨트롤러 단에서 문제가

확.실.히 발생하고 있다는 사실을 깨달았고 샅샅히 보기 시작했다.

(case문이 하나일 때는 괜찮다가 case문을 추가할 때마다 같은 오류가 발생한다는 것도 깨닫게 되었다.)

 

 

 

그때 웹브라우저 상에 보이는 console에 로그인시 메소드 두개를 호출하고 있다는 형태로 오류가 떴고

왜 메소드가 연속적으로 호출되거지? 하고 controller를 보았다.

 

나는 드디어 발견했다 나의 오류를.,,

그것은 바로

 

 

정말 어이없게도 case문에 break이 빠진 것,,, 그래서 나는 계속적으로

requset를 forward 하는 상황을 발생시켰고

그래서 페이지도 중복되어 표시된 것이었다.

이 오류를 처음에 알았을 때 진짜 기가 찼다 ㅠㅠ

정말 작은 실수인데.... 후

불행 중 다행인건 결국 오류를 찾았고,

앞으로 switch-case문에 break을 빼먹는 실수는 하지 않을 거라는 것^^

 

illegalExcaption은 보통

메소드 이름이 중복되거나, 이와 비슷한 상황에서 발생한다.

대충 비슷한 상황들 있지 않은가?

메소드 중복, 나처럼 break문을 안넣어 연속적으로 메소드를 부르고 있다던지...등등 ㅎ

앞으로 illegalException 뜨면 대충 어떤 문제 때문에 발생하는지 알 수 있을듯 하다.

댓글