JasperReports Server响应中的MIME类型错误?

时间:2014-07-02 15:25:53

标签: java jasper-reports mime-types servlet-filters

我们有一个运行我们报告的JasperReports Server(5.5.0社区版),并通过我们的Web应用程序中的REST服务API来使用它们。

当我们通过reports execution API询问报告输出时,我们得到了正确的输出,我们可以正确下载它,但问题是下载的文件是在没有扩展名的情况下下载的,因此最终用户可以'打开它(它必须重命名或选择适当的程序打开它)。根据我们能够弄清楚的原因,这有几个原因造成的: 首先,Jasper服务器上生成的输出没有设置名称,这是一个例子: { "status": "ready", "totalPages": 1, "currentPage": null, "errorDescriptor": null, "requestId": "338384569_1404312281871_3", "reportURI": "/uri_to_report", "exports": [ { "status": "ready", "errorDescriptor": null, "outputResource": { "contentType": "application/xls", "fileName": null }, "id": "xls" } ] }

正如我们所看到的,“fileName”属性为null,因此当我们询问输出时 <JASPER_SERVER_URL/jasperserver/rest_v2/reportExecutions/338384569_1404312281871_3/exports/xls/outputResource> 我们得到一个名为“outputResource”的文件,没有扩展名。这导致链接元素上的download属性无用,我们尝试了这个选项。我们无法找到在Jasper服务器内部设置此文件名的方法。

另一个原因是某些输出格式没有正确设置响应的MIME类型(我们尝试使用XLS,XLSX和DOCX格式)。我们可以看到,根据IANA或甚至是MICROSOFT,当应该是“application / vnd.ms-excel”并且浏览器无法使用正确的设置默认文件名时,将XLS输出设置为“application / xls”延期。为此,我们在嵌入式Tomcat中实现了一个Servlet过滤器,但似乎在我们为它设置正确的Content-Type标头之前刷新了响应。

我们将向Jasper社区报告这个可能的错误但是由于我们等待答案,我们一直在寻找这个问题的解决方法,那么,有什么建议吗?

先谢谢大家。

0 个答案:

没有答案