오늘은 자바에서 발생한 문제에 대해서 이야기 하고자 한다.
XML을 스트림해서 response 하기위해 response.getWriter() 를 사용했다.
requestPro 는 인터넷에서 쉽게 찾을수있는 가장 기본적인 MVC 패턴으로 구현된 것으로
Iterator 패턴과 RequestDispatcher 를 컨트롤단에 정의해서 구현한 메서드이다.
그런데 이 패턴으로 인해 문제가 발생했다.
Cannot forward after response has been committed .
응답이 커밋한후 전달(forward) 할수 없다 라는 메세지 인데
해당 exception 에대해서 구글링 해본결과. response.sendRedirect(""); 를 사용하면 해결된다는 글을 발견하고 컨트롤러 쪽 JAVA 파일을
수정해봤지만 해결을 할수없었다.
그래서 이번엔 스택오버 플로우를 찾아봤다.
해당 패턴은 Iterator 패턴과 RequestDispatcher 를 컨트롤단에 정의해서
dispatcher.forward 를 사용하기전에 response.getWriter() 에 대한 flush() 가 되는 형식이란걸 알게되었다.
XML 스트림방식을 꼭 쓰지않아도 될것같아서, response.getWriter() 부분을 StringWriter() 로 변환하고
String 형태로 문제를 해결하는 방식으로 종결했다.
원인을 알게되었으니 앞으로 이와같은 상황이 왔을때 해결의 실마리를 찾은샘이다.
'Troubleshooting' 카테고리의 다른 글
JasperException 해결방법 (0) | 2015.11.21 |
---|