2011-10-18 13 views
2

これが可能かどうかを知りたい。http応答を送信した後に実行Java

私は、HTTP応答の後にファイルを削除するこの

File filer = new File("C:\tempfile.txt"); 

return Response.ok(filer, MediaType.APPLICATION_OCTET_STREAM).header("content-disposition", "attachment; filename=\"" + newName + "\"").build(); 

ようjavax.ws.rs.core.Response応答を送信するRESTfulなサービスを得ましたが(サーバー上の一時ファイルファイラ行う)クライアントに送信されました。

私はあなたの助けを前もってありがとうございます。

答えて

0

おそらく、まずは一時ファイルを使用しないでください。生成されたバイナリデータをメモリに保存したくない場合は、ok()を呼び出すときにStreamingOutputをエンティティとして渡します。

+0

ちょうど好奇心から外れ、応答後にいくつかのdoceを実行する可能性がありますか? –

+0

@MHero:リクエストライフサイクルのフックが見つかりません。標準のAPIを使用するだけでは使えないようです。それは私がAPIに精通しているわけではないと言いました。これは技術スタックの別の層で、またはベンダー固有の拡張として利用できる可能性があります。 – millimoose

0

最終的にブロックします。 try { File filer = new File( "C:\ tempfile.txt");

戻り値Response.ok(ファイラー、MediaType.APPLICATION_OCTET_STREAM).header( "コンテンツ配置"、 "添付ファイル名= \" "+ newName +" \ "")。 } finally { //ファイルを削除する }

+1

'finally'ブロックは、関数が返す(または例外をスローする)前に実行されます。 – millimoose

関連する問題