2012-02-27 10 views
4

私は、ファイルシステムからブラウザにファイルをストリーミングしようとしていますが、正しく動作するようにはできません。私は、コンソール上で、このようなエラーメッセージが出ていのXPageを開こうとすると今xPagesからファイルをストリームする方法は?

XspHttpServletResponse response = (XspHttpServletResponse) getFacesContext().getExternalContext().getResponse(); 

response.setContentType("application/octet-stream"); 
response.setHeader("Content-Disposition","attachment;filename=demofile.exe"); 

File file = new File("path to file"); 
FileInputStream fileIn = new FileInputStream(file); 
ServletOutputStream out = response.getOutputStream(); 
etc. ..... 

java.lang.IllegalStateException: Can't get an OutputStream while a Writer is already in use 
     at com.ibm.xsp.webapp.XspHttpServletResponse.getOutputStream(XspHttpServletResponse.java:548) 

私は、次のコードを持っているレンダリング=偽とafterRenderResponse上でのXPageを持っていますメソッド 'response.getOutputStream()'は、このようなエラーを発生させるので、出力ストリームが機能しなくなります。これに経験がある人はいますか?私は単にダウンロードサービスを実装しようとしているので、サーバーファイルシステムからブラウザにファイルをストリームすることができます。

答えて

6

beforeRenderResponseではfacesContext.getOutputStream()を呼び出し、afterRenderResponseではnotを呼び出すことができます。

は、より多くのヘルプについては、以下のリンクを参照してください。

http://www.wissel.net/blog/d6plinks/SHWL-8BYMW8

http://www.wissel.net/blog/d6plinks/shwl-7mgfbn

+1

beforeRenderResponseイベントは、問題を解決しました!私は次回よりもっと慎重に文書を読んでいます.... –

+1

質問に答えを記入してください。 :) – Naveen

+0

私を引用するためのThx :-) – stwissel

関連する問題