Java application/pdf在liferay 6.0.6中不是受支持的mime类型

Java application/pdf在liferay 6.0.6中不是受支持的mime类型,java,jasper-reports,liferay,liferay-6,Java,Jasper Reports,Liferay,Liferay 6,我为Liferay 6开发了一个自定义portlet 单击链接应打开弹出窗口,以打开/保存使用Jasper Reports生成的pdf文件 我使用response.setContentType(“application/pdf”),其中响应是RenderResponse 但它返回以下错误: 错误java.lang.IllegalArgumentException:application/pdf不是受支持的mime类型 位于com.liferay.portlet.MimeResponseImpl.

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

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

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

但它返回以下错误:

错误java.lang.IllegalArgumentException:application/pdf不是受支持的mime类型 位于com.liferay.portlet.MimeResponseImpl.setContentType(MimeResponseImpl.java:159)

我还尝试在文件
portlet.xml

<supports>
    <mime-type> application/pdf </mime-type>
    <portlet-mode> view </portlet-mode>
</supports>

申请表格/pdf
看法
但我总是犯同样的错误


您有什么建议吗?

您应该在jsr-286中使用
public void服务器资源(ResourceRequest-req,ResourceResponse-res)
方法,并在此方法中使用
res.setContentType(“application/pdf”)

根据Portlet 2.0(由Liferay-6支持),我们有两个新的Portlet阶段:和

资源服务阶段对于在Portlet中执行ajax内容和下载(即服务图像/文档/pdf/文件等资源)非常有用

因此,就像您创建一个
renderURL
renderResponse.createRenderURL()
)来调用portlet的
render
doView
方法一样,您也需要创建一个
资源URL
renderResponse.createResourceURL()
)调用portlet的
serversource
方法

serversource
方法中,您可以编写当前在渲染方法中编写的代码(可能需要一些修改)以下载pdf


有关完整的示例,您可以下载本书第12章的内容,并参考名为:ch12_BookCatalogResourceURL

&@Dragos Bobolea的项目,谢谢您的回复,是否有链接或文档可供进一步了解Hey djoStack,您是否能够解决此问题?我面临着完全相同的问题。你能帮帮我吗?