평범한 연구소

[Spring] getOutputStream() 와 getWriter() 를 둘 다 쓴다면? (java.lang.IllegalStateException: getOutputStream() has already been called for this response) 본문

Spring Framework

[Spring] getOutputStream() 와 getWriter() 를 둘 다 쓴다면? (java.lang.IllegalStateException: getOutputStream() has already been called for this response)

soyeonisgood 2023. 1. 7. 00:51

댓글 신고 기능을 구현하는 중에 발생한 에러다. 

신고 처리는 AJAX로 작성하였는데, Controller에서 로직이 모두 실행된 후, JSP단으로 보내주는 부분에서 발생했다. 

원인은 getOutputStream() 과 getWriter() 를 둘 다 사용했기 때문이다.

신고 처리 여부를 담은 msg 데이터를 추가하는 과정에서 msg가 한글로 작성한 문자열이므로 인코딩을 추가했다. 이때  getOutputStream() 인 mode.put() 를 지우지 않았기 때문이다. 

 

getOutputStream() 또는 getWriter() 둘 중 하나만 사용하도록 작성하면 해결 된다.

한글 인코딩 과정이 필요하다면 getWriter() 를 사용하는 것이 좋겠다.

 

 

 

360~361 라인 삭제하면 해결!