[Seasar-user:2884] ファイルダウンロード後にIllegalStateExceptionエラー

川波 公治 kawanami
2005年 11月 22日 (火) 16:41:24 JST


お世話になっております。川波です。

また、質問させていただきます。

ダウンロードのプログラムを下記のように実装し
ファイルのダウンロードは問題なく行えましたが、
その後の処理でIllegalStateExceptionエラーが発生して落ちてしまいます。
調べてみたのですが、わかりませんでしたの投稿させていただきました。
よろしくお願いいたします。

・環境
Java 1.5.0 Update5
Tomcat 5.5.12

Seasar2 2.2.11
S2JSF 1.0.28
Myfaces 1.0.8


・ソース

static public void download(HttpServletResponse response, String[] line, String fileName) throws IOException{

    response.setContentType("application/octet-stream;charset=Windows-31J");
    response.setHeader("Content-Disposition","attachment;filename=\""+fileName+"\"");
    
    
    PrintWriter out = response.getWriter();
    
    try{
    	// 各行の内容を繰り返し出力
    	for(int i = 0; i < line.length; i++){
      
    		out.print(line[i]);
    		out.print(System.getProperty("line.separator"));
    	}
    }
    finally {
    	if(out != null){
    		out.close();
    	}
    }
}


・IllegalStateExceptionエラー
ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/arte_senon].[Faces Servlet] - サーブレット Faces Servlet のServlet.service()が例外を投げました
java.lang.IllegalStateException: getWriter()はこのレスポンスに対して既に呼び出されています
	at org.apache.catalina.connector.Response.getOutputStream(Response.java:575)
	at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:180)
	at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)


-- 
川波 公治 <[E-MAIL ADDRESS DELETED]>





Seasar-user メーリングリストの案内