일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- inotify
- CVSROOT 세팅
- Openfiler
- PERL
- clustering
- perltidy
- ext4
- 리눅스
- 오라클
- 가상파일시스템
- pgpool-ii
- Nexenta
- pgbench
- 펄
- postfix
- 시그널
- pvfs
- pgsql
- connection tunning
- LVS
- 펄 코딩스타일
- php-oracle 연동
- mailfiler
- tomcat
- OCFS2
- Replication
- 파일시스템
- ext3
- ZFS
- 포기해버린꿈
Archives
- Today
- Total
avicom의 신변잡기
Exception initializing page context 본문
제목 : Cannot create a session ..과 include 글쓴이: 안성주(guest) 2004/12/06 01:30:01 조회수:174 줄수:45 |
다음과 같은 에러가 발생했습니다. 문제점이 무엇인지 모르겠습니다. include 할때 <jsp:include page="/concord.jsp" flush="true"/> 이렇게 했고 한 페이지의 include 문이 40개쯤 됩니다. include 가 많아서 그런지요? 한 페이지의 생성요소가 많아서 include 파일 갯수를 많이 줄이기는 힘들것 같구요. 또는, include 할때 flush 를 false 로 하면 되는지요? 미치겠네요. 빨리 해결 방법을 찾고 싶네요. 2004-12-05 03:05:39 JspFactoryImpl: Exception initializing page context java.lang.IllegalStateException: Cannot create a session after the response has been committed at org.apache.coyote.tomcat4.CoyoteRequest.doGetSession(CoyoteRequest.java:1911) at org.apache.coyote.tomcat4.CoyoteRequest.getSession(CoyoteRequest.java:1758) at org.apache.coyote.tomcat4.CoyoteRequestFacade.getSession(CoyoteRequestFacade.java:361) at org.apache.coyote.tomcat4.CoyoteRequestFacade.getSession(CoyoteRequestFacade.java:366) at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:268) at org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:138) at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:114) at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:175) at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:154) at org.apache.jsp.concord_jsp._jspService(concord_jsp.java:49) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:575) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:498) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:822) at org.apache.jsp.main_jsp._jspService(main_jsp.java:254) ........... |
제목 : Re: 페이지 버퍼 크기를 늘려 주세요.. 글쓴이: 이희승(anoripi) 2004/12/06 07:59:33 조회수:101 줄수:13 |
@page 던가? 에서 페이지의 버퍼 크기를 설정하는 옵션이 있습니다. 크기를 32768 이런식으로 크게 늘려 보시면 안날 겁니다. 그런데 페이지가 엄청 큰가 보군요. HTML 을 최적화할 필요가 있다고 봅니다. CSS 등 으로요. -- what we call human nature is actually human habit. -- http://gleamynode.net/ |
제목 : Re: 그리고..자바 포럼을 찾아보니까 글쓴이: 안성주(guest) 2004/12/06 10:13:49 조회수:129 줄수:12 |
알려 주신것 감사합니다. 한번 고쳐 보겠습니다. 현재 프로그램 구조상 include 를 많이 하고 있는데(40개쯤) 각 include 에서 output으로 결과를 내보내고 있습니다. 즉 각 include에 html 이 있는 거죠. 혹시 이것과 관련이 있는 건지...? 처음 include 에서 output 으로 결과를 내지말고 꼭 마지막에 output으로 결과를 내야 하는 건지요? 너무 답답해서 sun 의 자바 포럼 사이트를 찾아 보니까. 이런 말 비슷한게 있어서요... |
제목 : Re: session생성은 <head>태그이전에 만드셈 ;; 글쓴이: 김용한(md02) 2004/12/06 15:00:02 조회수:190 줄수:8 |
-건강이제일이라 (/ㅡ.ㅡ)/ 운동하세~ Cannot create a session after the response has been committed --> 세션은 html헤더태그 생성하기전에 만들어줘야한다고 짧은지식이나마 그렇게 알고있습니다.. ^^;; 만약 세션을 생성해주려면 <head>태그이전에 만들어주시기를 ^^;; 고수님들 제생각이틀렸으면 마구채찍질을 쿠헐 |
제목 : Re: 세션은 페이지가 outputstream 으로 실제 flush 되기 전에만 생성되면 됩니다. 글쓴이: 이희승(anoripi) 2004/12/06 16:41:37 조회수:112 줄수:24 |
Cannot create a session after the response has been committed 세션은 아시다시피 HTTP 헤더의 쿠키 값으로 넘어가는 unique ID 일 뿐입니다. 컨테이너에서 이와 매칭하여 세션 개체를 얻어다 주는 것이죠. (구현에 따라 다를 수는 있겠지만요) 그러므로 HTTP Response 의 body 부분이 이미 스트림에 기록이 되었다면 세션을 생성할 수 없겠죠. 일반적으로 컨테이너들은 서블릿이나 JSP 페이지의 출력을 버퍼링합니다. (성능상의 이유) 그리고 그 버퍼가 꽉 차게 되면 실제로 socket 에 flush 를 하게 되는데, 이 과정에서 HEADER 를 먼저 소켓에 기록해야 하는 것이죠. 이미 소켓으로 헤더를 다 쓰고 바디의 일부분까지 쓴 상황에서는 세션을 생성할 수 없는 것이죠. 그런데 이 문제를 해결하거나 다른 튜닝을 하기 위해 페이지의 버퍼 크기를 설정할 수 있습니다. 이 값을 페이지의 예상되는 크기로까지 늘리거나 하면 문제를 해결할 수 있습니다. 하지만 일반적으로 세션의 생성은 페이지 앞부분에서 일어나므로 문제가 되지 않습니다. MVC 프레임워크를 사용하시거나 세션 생성부를 페이지 앞쪽으로 끌어올려도 될 듯 합니다. -- what we call human nature is actually human habit. -- http://gleamynode.net/ |