2017-09-20 10 views
5

Wildfly 10 にWebアプリケーションがあり、Webアプリケーションディレクトリに、ユーザーがハイパーリンクをクリックしたときにダウンロードしたいzipファイルが置かれています。 UI上で 私はそれはWildfly 10のコンテンツタイプの問題

"http://192.168.2.123:8080/comp/downloads/Installer.exe" 


Content-Type:text/html;charset=UTF-8 

予想通りこれはJBoss6で働くように正しいURLを作成します

スニペット

<div class="tyDiv" onclick="window.open('request.getContextPath() + "/downloads/Installer.exe")%>','_self')"> 
</div> 

を持っています。それはexeファイルをダウンロードしますが、Wildflyではコンテンツタイプがtext/htmlのため、画面にすべての迷惑文字が表示されます

スタンドアロンのfull.xmlでMIMEタイプを設定しようとしましたが動作しませんでした。

+0

vanilla Wildfly-10.0.0でこの現象を再現できませんでした。私の一連の手順は '' cd展開だった。 mkdir foo.war; foo.war/bar.exe、curl -v http:// localhost:8080/foo/bar.exe'''を実行し、その結果の '' Content-Type''は '' 'application/octet-ストリーム '' '。他に何かがあるはずです。 web.xmlにカスタム 'mime-mapping'がないか確認してください。 –

+0

いいえ、mime-mappingがありません。代わりにweb.xmlに追加しようとしましたが、動作しませんでした。 – happy

+0

**バニラ** Wildflyインストールで私のアプローチを試してみることをお勧めします。次に、プロジェクトの一部にアーティファクトを追加して、間違ったタイミングを再度確認してください。 –

答えて

0

undertow.ioのマニュアルでは、応答ごとのMIMEタイプを手動で設定する方法を示しています。 exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/octet-stream");ですが、MIMEタイプのマッピングを持つファイルがweb.xmlと呼ばれる可能性があります(正しいファイルが参照されていることを確認してください)。それ以外に、私はサーブレットフィルタが必要なように構成されていないかもしれないと想像することができます。そして、要求が終わってはならない場所にリクエストを送ります(https://stackoverflow.com/tags/servlet-filters/infoが見つかりました)。この答えはここでも実行時にMIMEタイプを追加する方法を示しています:https://stackoverflow.com/a/38021097/549372(出力にバイナリストリームを書き込むときには普通のことですが、それは不正な入力ストリームの結果かもしれません)。

関連する問題