2010-12-29 8 views
2

CSVファイルを返すアクションメソッドを持つスプリングアプリケーションで作業しています。スプリングコントローラからcsvファイルを返す際の異常な動作

このアクションは正常に機能しますが、場合によっては事前定義された例外(MyAppException)がスローされます。

私は、私は別のcsvファイルを返しますが、内容の異なる例外ハンドラメソッドでは@ExceptionHandler(MyAppException.class)

を注釈されている別の方法を持っています。

csvファイルを返すコードは、2つのメソッドでほぼ同じです。

List<String[]> list= new ArrayList<String[]>(); 
list.add(new String[]{ 
    integrationRequestErrorLog.getErrorMessage(), 
    Long.toString(integrationRequestErrorLog.getId()), 
    Integer.toString(integrationRequestErrorLog.getErrorCode()) 
}); 
CSVWriter writer = new CSVWriter(response.getWriter(), ','); 
writer.writeAll(list); 
writer.close(); 

2つの方法の違いは内容のリストです。

最初のメソッドではファイルが正常に返されますが、例外ハンドラメソッドでは私は奇妙な動作をします。

例外ハンドラメソッドはOperaブラウザでうまく動作し、FireFoxで404が表示されます。

Operaブラウザでも404が表示されますが、Firefoxはファイルをダウンロードしていませんか?

本当に違いは何ですか?

答えて

0

応答でContent-Type HTTPヘッダーが正しく設定されていますか? FirefoxとOperaは多分処理を違うでしょう。そして、私は、春の例外ハンドラがそれをまったく設定していないと思われます。明示的にそれをtext/csvと設定することをお勧めします。

+0

Thnx AngerClownコンテンツタイプをtext/csvに追加しようとしましたが、状況は変わりませんが、私はファイルを返す方法も変更しました(ディスク上に静的ファイルがあります。それを応答に書いてください)、状況は変わりません。 – Fanooos

関連する問題