I have a webapp that is failing to start in Tomcat on a Linux install. The app works on a different Tomcat installs on different machines and on the same machine when using a standalone Tomcat.
The problem seems to be due to the way in which Tomcat is starting.
- Usining
service tomcat8 start
fails when Tomcat is installed through the package manager; - Using
/etc/init.d/tomcat8 start
fails when Tomcat is installed through the package manager; - Using a standalone tomcat and starting with
service tomcat8 start
(having modified/etc/init.d/tomcat8
) fails; - Using a standalone tomcat and starting using
./startup.sh
works.
I am using Debian 8, Tomcat 8.0.11 (but have tried 8.0.9 and 8.0.11) and various versions of Java. The app is failing due to a java transaction manager called Atomikos. The error is:
SEVERE: Exception sending context initialized event to listener instance of class uk.co.prodia.talkingcouch.ApplicationContextListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [config/applicationContext-db-sessionfactory.xml]: Cannot resolve reference to bean 'atomikosTransactionManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'atomikosTransactionManager' defined in class path resource [config/applicationContext-db-sessionfactory.xml]: Invocation of init method failed; nested exception is javax.transaction.SystemException: Transaction service not running at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
Does anyone have any suggestions?