Deploying a simple Portlet to Liferay - ClassCastException

梦想的初衷 提交于 2019-12-08 21:26:27

问题


I'm deploying the most basic Portlet possible to Liferay:

public class FirstPortlet extends GenericPortlet
{
    @RenderMode(name="VIEW")
    public void welcomeWelcome(RenderRequest request, 
            RenderResponse response) throws  
            PortletException, IOException
    {       
        PrintWriter out = response.getWriter();
        out.println ("This is a portlet, <em>within a Portal</em>");
    }
}

On deployment, I'm getting a ClassCastException:

 Caused by: java.lang.ClassCastException: FirstPortlet cannot be cast to javax.po
rtlet.Portlet

After Googling, it appears that deploying portlet.jar is a mistake - I've made sure I'm not accidentally doing this.

javax.portlet.Portlet is implemented by GenericPortlet, and all Portlet examples seem to extend GenericPortlet so I assume that's ok.

Can anyone help?


回答1:


javax.portlet.Portlet is implemented by GenericPortlet, and all Portlet examples seem to extend GenericPortlet so I assume that's ok.

If GenericPortlet implements Portlet, my guess is that you have a class loader issue. The class is loaded twice, in two different class loaders and are by consequence considered different.

After Googling, it appears that deploying portlet.jar is a mistake - I've made sure I'm not accidentally doing this.

I would still suggest that you double check if you don't have portlet.jar (or another jar which contains Portlet) loaded twice somewhere. The possible locations depend on the container you are using (Tomcat? Glassfish? ).




回答2:


This is definitely classloading issue. If you are sure you don't have portlet.jar in your WAR archive you can turn on verbose classloading and watch where is the javax.portlet.Portlet loaded from.

To turn you verbose classloading pass following parameter to the JVM:

-verbose:class



来源:https://stackoverflow.com/questions/2366452/deploying-a-simple-portlet-to-liferay-classcastexception

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!