나의질문답

Cannot forward after response has been committed

예쁜꽃이피었으면 2014. 7. 29. 23:39

http://www.okjsp.net/seq/253775

 

 

 

기존 잘 돌아가던 소스에 if문을 추가시켰는데 에러가 났습니다.

부장님께 여쭤보니

수정한 파일이 implements CommandAction 이렇게 되어있고
 CommandAction  의 모양?을 그대로 따라야 하는데 아니라서
에러가 난다고 하시더라고요.
모양을 그대로 따른다는게 어떤 의미인가요

 

에러는 이렇게 납니다.

2014. 6. 20 오후 1:25:14 org.apache.catalina.core.StandardWrapperValve invoke
심각: Servlet.service() for servlet [ControllerAction] in context with path [/sb04] threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:348)
 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
 at sb.common.controller.ControllerAction.requestPro(ControllerAction.java:106)
 at sb.common.controller.ControllerAction.doPost(ControllerAction.java:67)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
 at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source) 

 

----------------------------------------------------------------------------------------------------

 

자바 인터페이스에 대해 공부해보세요.
인터페이스를 implements(구현)할 경우 그 인터페이스에 명시되있는 메서드는 반드시 존재해야 합니다. 인터페이스는 일종의 약속이라고 보시면 됩니다. 

 

 


응답이 끝난후에 포워딩 할수없다 뭐 그런얘기같네요 

 


response 에 대한 응답스트림을 2번처리하셔서 그런거 같네요
예를들어 getWriter() 와 getOutputStream() 를 동시에 호출하셨거나
또는 getRequestDispatcher 를 forward 하신후에 처리를 하셨거나  

 

반응형

'나의질문답' 카테고리의 다른 글

contenttype 에러 질문있습니다  (0) 2014.07.29
팝업창 질문있습니다.~  (0) 2014.07.29
자바에서 alert  (0) 2014.07.29
option:selected할때 질문있습니다.  (0) 2014.07.29
팝업창 닫기버튼 질문있습니다.  (0) 2014.07.29