Internet Explorer尝试在Jboss服务器上打开Excel并失败

时间:2012-02-06 12:37:01

标签: linux internet-explorer jsf-2 jboss7.x

我有一个JSF2应用程序链接到服务器文件系统上的静态Excel文件。链接是这样一个简单的HTML:

<a href="#{bean.getExcelLink(auction)}">Excel File</a>

这适用于Chrome和Firefox,以及当我的本地Windows 7计算机上的Tomcat中运行应用程序时的IE。但是当使用Jboss AS 7.0.1 Final的Linux登台环境时,IE会尝试在自己的窗口中打开Excel文件并生成一堆垃圾字符。

同样,当应用程序在带有Jboss AS的Linux上运行时,问题仅出现在IE上。

知道发生了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

显然,响应内容类型错误。鉴于它在Linux中失败但在Windows中成功,这只能意味着使用特定于平台的mime类型映射来确定内容类型而不是webapp / server特定的mime类型映射(Linux机器当然没有安装MS Office,因此它不太清楚mime类型的.xls.xlsx文件。这反过来只意味着您没有直接链接到它,而是使用通用servlet来传输文件。

如果这是真的,那么您实际上应该使用ServletContext#getMimeType()来确定基于文件扩展名的内容类型,而不是使用特定于平台的mime类型映射的URLConnection#guessContentTypeFromName()。服务器在其自己的web.xml中有一个预定义的所有默认mime类型列表,其中包含<mime-mapping>条目的风格,您可以在webapp自己的web.xml中覆盖/扩展它们。