Wednesday, February 2, 2011

SEVERE: Error listenerStart

Yeah, this is a fun one.

SEVERE: Error listenerStart

goes right along with

SEVERE: Context [/mybrokenportlet] startup failed due to previous errors

You've built yourself a fabulous portlet, you've gotten it to build but it refuses to deploy. Your Liferay output tells you it's available for use but then turns right around and unregisters it.

Liferay 5.2.3

You've checked your jars, you've checked your versions, you're fighting your way through jar hell and are beating your head against the wall.

I know because that's how I spent my morning.

Do yourself a favor. Check the portlet name you've defined in your configuration files. Check portlet.xml. Check liferay-display.xml. Check web.xml. Compare that against your .war filename.

We recently modified our portlets to be Maven-buildable and while we were at it we also started using a portlet naming convention which tacks "-portlet" on the end of the .war file names. (So uberportletofdoom.war would instead be uberportletofdoom-portlet.war) I'd made this change in the pom.xml but not in any of my WEB-INF configuration files.


Liferay expects the .war file to be named consistently with your configuration file names.

Now go deploy your portlet and start debugging it.

(If that doesn't fix it, go on to this post.)


  1. I found that modifying Tomcat to use Log4J provides much better error logging and has always helped me debug this one. It can also happen when there are NoClassDefFound or ClassNotFoundExceptions.

  2. If anybody needs the instructions and files to configure Tomcat to use log4j, you can find them here: