Bamboo fails to start - java.lang.NoClassDefFoundError
Symptoms
Bamboo fails to boot and the following error appears in the logs:
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.crowd.integration.atlassianuser.CrowdAuthenticator]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/codehaus/xfire/handler/Handler
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:186)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:795)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:713)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)
... 128 more
Cause
There are jar libraries copied from Crowd to Bamboo as per this document, but Bamboo doesn't need those files as the latest versions (4.x and after) already contain the needed libraries.
Resolution
Make sure that you have the correct versions of Crowd .jar files in the BAMBOO_INSTALL/webapp/WEB-INF/lib directory. You can extract the data from the downloaded bamboo installer archive and compare the Crowd jar file versions with the ones located in the BAMBOO_INSTALL/webapp/WEB-INF/lib directory. In case there is a discrepancy, replace the incorrect jar files with the correct ones and restart your Bamboo server.