Liferay问题:com.liferay.portlet.ResourceResponseImpl无法强制转换为javax.portlet.response

时间:2014-08-29 19:50:33

标签: java-ee liferay liferay-6 portlet

我正在使用liferay 6.2 GA2。我试试这个时

`RenderResponse renderRespons = (RenderResponse)   request.getAttribute("javax.portlet.response");` 

我在控制台上遇到了这个错误。

com.liferay.portlet.ResourceResponseImpl cannot be cast to javax.portlet.response

请帮助

1 个答案:

答案 0 :(得分:1)

首先:无论您拥有HttpServletResponse,您可能还有PortletResponse可用 - 需要以这种方式获取它感觉很奇怪,您可能想重新设计您的架构。

接下来,几乎总是当你不能对类/对象的明显超类(或接口)进行类型转换时,很可能你在类路径上有两次涉及的类,通常是超类。在您的情况下,它可能是 portlet.jar :确保它不包含在项目的 WEB-INF / lib 目录中,因为它已经在全局类路径中可用。< / p>

根据您实际执行此操作的位置,可能会出现另一个类加载问题:当您自己的插件无法访问ResourceResponseImpl的类定义时(通常没有此访问权限) ),我不确定在这种情况下会出现什么错误信息。