Wildfly 10中的内容类型问题

hap*_*ppy 5 mime-types wildfly wildfly-8 wildfly-10

我在Wildfly 10上有一个Web应用程序,在Web应用程序目录中,我放置了一个zip文件,当用户点击超链接时我想要下载该文件.在我的UI上

片段

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

它创建了正确的URL

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


Content-Type:text/html;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

这符合预期在JBoss6中有效.它下载exe文件但在Wildfly中它显示屏幕上的所有垃圾字符,因为它的内容类型是text/html

我尝试在standalone-full.xml中设置mime类型但是没有用.

 <mime-mappings>
    <mime-mapping name="css" value="text/css"/>
    <mime-mapping name="exe" value="application/octet-stream"/>
 </mime-mappings>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ler 0

undertow.io上的文档显示了如何手动设置每个响应的 MIME 类型,例如。exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/octet-stream");同时可能会调用具有 MIME 类型映射的文件web.xml(确保引用了正确的文件)。除此之外,我可以想象 servlet-filter 可能没有按照应有的方式配置 - 并且它会将请求分派到不应该结束的地方(已找到https://stackoverflow.com/tags/servlet-filters/info)。虽然这里的这个答案甚至显示了如何在运行时添加 MIME 类型:/sf/answers/2661476821/(普通的是应该application/octet-stream在将二进制流写入输出时提供服务 - 这意味着,它也可以是错误输入流的结果)。