首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在救生筏6.0.6中,application / pdf不是受支持的mime类型。

在救生筏6.0.6中,application / pdf不是受支持的mime类型。
EN

Stack Overflow用户
提问于 2013-06-02 15:30:42
回答 2查看 2.3K关注 0票数 2

我为Liferay 6开发了一个自定义portlet。

单击链接应该打开弹出窗口,打开/保存使用Jasper Reports生成的pdf文件。

我使用response.setContentType ("application/pdf"),其中的响应是RenderResponse

但是它返回以下错误:

错误java.lang.IllegalArgumentException: application / pdf不是java.lang.IllegalArgumentException支持的mime类型(MimeResponseImpl.java: 159).

我还试图在文件portlet.xml中添加标记

代码语言:javascript
复制
<supports>
    <mime-type> application/pdf </mime-type>
    <portlet-mode> view </portlet-mode>
</supports>

但我总是犯同样的错误。

你有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-02 19:32:11

你应该在jsr-286中使用public void serveResource(ResourceRequest req, ResourceResponse res)方法,在这个方法中使用res.setContentType("application/pdf")

票数 0
EN

Stack Overflow用户

发布于 2013-07-26 14:39:28

根据Portlet2.0(由Liferay-6支持),我们有两个新的Portlet阶段:ResourceEvent

资源服务阶段对于在portlets中执行ajax操作以及下载资源(如图像/文档/pdf/文件等)非常有用。

因此,就像创建一个renderURL (<portlet:renderURL />renderResponse.createRenderURL())来调用portlet的renderdoView方法一样,您需要创建一个resourceURL (<portlet:resourceURL />renderResponse.createResourceURL())来调用portlet的serveResource方法。

在您的serveResource方法中,您可以编写当前在呈现方法中编写的代码(可能需要进行一些修改)来下载pdf。

要获得完整的示例,您可以下载此ch12_BookCatalogResourceURL.图书第12章的源代码,并参考名为:Portlet在行动中的项目

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16884276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档