JSP 처리 중에 발생하는 다음과 같은 오류 메세지.
Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.IllegalStateException: getOutputStream() has already been called for this response] with root cause java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:678) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:213) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:194) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:126) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:80)
그리고 코드 중에 다음과 같이 getOutputStream()이 있다.
fout = new BufferedOutputStream(response.getOutputStream());
JSP를 Servlet으로 변하는 과정에 생기는 OutputStream 때문인데, 다음을 통해 JSP 자체의 OutputStream을 제거할 필요가 있다. 반드시 getOutputStream() 앞에 위치시킨다.
out.clear();
out=pageContext.pushBody();
JSP 처리 중에 발생하는 다음과 같은 오류 메세지.
Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.IllegalStateException: getOutputStream() has already been called for this response] with root cause
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:678)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:213)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:194)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:126)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:80)
그리고 코드 중에 다음과 같이 getOutputStream()이 있다.
fout = new BufferedOutputStream(response.getOutputStream());
JSP를 Servlet으로 변하는 과정에 생기는 OutputStream 때문인데, 다음을 통해 JSP 자체의 OutputStream을 제거할 필요가 있다. 반드시 getOutputStream() 앞에 위치시킨다.
out.clear();
out=pageContext.pushBody();
'프로그래밍 > Servlet&JSP' 카테고리의 다른 글
[Servlet&JSP] org.apache.jasper.JasperException: Unable to compile class for JSP (0) | 2014.06.03 |
---|---|
[JSTL] 리스트의 null 체크 & 사이즈 구하기 (0) | 2014.03.20 |
[jQuery] form.rest() (0) | 2013.12.02 |
[JSTL] JSTL 에서 삼항연산자 문법 (0) | 2013.12.02 |
스크립트나 html을 제거하는 정규식 (0) | 2008.10.16 |