Internet ExplorerがJbossサーバー上でExcelを開こうとすると失敗する

私は、サーバーのファイルシステム上の静的なExcelファイルにリンクするJSF2アプリケーションを持っています。リンクは次のような単純なhtmlです:

Excel File

これはChromeとFirefox、そしてアプリケーションがローカルのWindows 7マシンでTomcatで実行されているときにIEでうまく機能します。しかし、Jboss AS 7.0.1 Finalを備えたLinuxであるステージング環境では、IEはExcelファイルを独自のウィンドウで開こうとし、一連のガベージ文字を生成します。

この問題は、アプリケーションがJboss ASとともにLinux上で実行されている場合にのみ、IE上で発生します。

何が起こっているか、どのようにそれを解決するかについてのアイデア?

0

1 答え

どうやら応答内容の種類が間違っています。 Linuxで失敗してもWindowsで成功するという事実を考えると、webapp/server固有のMIMEタイプマッピングではなく、コンテンツタイプを特定するためにプラットフォーム固有のMIMEタイプマッピングが使用されていることを意味します(LinuxマシンMS Officeがインストールされていないため、MIMEタイプの .xls .xlsx ファイルを認識していません)。これは、あなたが直接それにリンクするのではなく、一般的なサーブレットを使ってファイルをストリーミングすることを意味します。

If this is true, then you should actually be using ServletContext#getMimeType() to determine the content type based on the file extension instead of maybe URLConnection#guessContentTypeFromName() which uses the platform-specific mime type mapping. The server has in its own web.xml a predefinied list of all default mime types in flavor of entries which you can override/extend in webapp's own web.xml.

1
追加された
直接リンクしているのであれば、それはJBossサーバー自体のバグです(私は実際には期待しません)。リクエストで返されたレスポンスヘッダをXLSファイルに表示できますか?
追加された 著者 BalusC,
したがって、 Content-Type ヘッダーはまったくありません。これは間違いなく正しいです。ローカルのJBossインスタンスと比較してください。ステージング時のJBossのバージョンがまったく同じ場合、おそらくJBossの前にあるプロキシ(Apache HTTPDなど)が原因です。 serveradminに問い合わせて、この問題を報告してください。
追加された 著者 BalusC,
これを見てくれてありがとう、BalusC。私は直接リンクしています。 「ビューソース」からのリンクは次のようになります: server_name:8080/res /… そして、この問題はIEでのみ発生します。私がサーブレットを通過しようとしているのであれば、コードはあなたの答えにあるものと同様の働きをします。> stackoverflow.com/questions/8991478/…
追加された 著者 Herzog,
私がそれをすると、Developer ToolsのHTMLタブの下で(私はページ自体のものと基本的に同じです)、たくさんのゴミを取得します。Scriptタブにはこれがありますが、これは参考になりません。私が行くべき他の場所? btw私のブラウザはIE8です。私は9に更新する必要がありますか?
追加された 著者 Herzog,
これはクロム製です:Accept-Ranges:bytesコンテンツ長:17408日付:2012年2月6日16:26:52 GMT ETag:W/"17408-1328543185000"最終更新日:2012年2月6日(月)15:46: 25 GMTサーバー:Apache-Coyote/1.1
追加された 著者 Herzog,