[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 メーリングリストの案内