Deploying a simple Portlet to Liferay - ClassCastException

liferay, portlet

Solution

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? ).

Problem

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?

Original source