CRX fails to start javax.servlet.ServletException: Unable to bind repository via RMI

Symptoms

When you try to start your crx/cq instance it does not start and you get an error similar to:

23.08.2007 09:54:49 *ERROR* RepositoryStartupServlet: RepositoryStartupServlet initializing failed: javax.servlet.ServletException: 
Unable to bind repository via RMI. (RepositoryStartupServlet.java, line 199)
javax.servlet.ServletException: Unable to bind repository via RMI.
at com.day.crx.j2ee.RepositoryStartupServlet.registerRMI(RepositoryStartupServlet.java:502)
at com.day.crx.j2ee.RepositoryStartupServlet.init(RepositoryStartupServlet.java:194)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at com.day.crx.j2ee.CRXRepositoryStartupServlet.init(CRXRepositoryStartupServlet.java:100)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:190)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.init(ServletWrapper.java:317)

Cause

This error usually occurs when CRX tries to register itself via RMI on a port that is already in use by another CRX repository. If you run multiple CRX repositories on one machine then you are probably experiencing a port conflict.

Resolution

Check the rmi-port in the web.xml file of your CRX instance that fails to bind itself to RMI. This is per default located in <cq_home>/server/runtime/0/crxauthor/WEB-INF/web.xml

Either change this port to a unused port or completely comment out the rmi-configuration if you do not require RMI access to the CRX repository at all. CQ does not need RMI access to CRX.