Search code examples
linuxapachetomcatservicetomcat8

service <tomcat8> start fails to start service without any error in servlet.log


I upgraded Apache tomcat from 7.x to 8.5.29 recently. tomcat is deployed inside my application. I have /etc/init.d script which starts tomcat (off course along with some of my project specific other services as well).

Command: service start was working fine till I was on tomcat 7 and then after upgrade to tomcat 8.5.29 this command stopped working. There are no changes in /etc/init.d script at all. Just matter of tomcat upgrade only. Servlet.log is not showing any error but if I compare servlet.log of tomcat 7 and tomcat 8.5.29 then I can figure out that my application is not loading. As such there are no errors in servlet.log of tomcat 8.

Whereas all things works prefectly fine if I use /etc/init.d/<myapp -tomcat8> start.

I'll really appreciate if I can get any help from you all guys.


Solution

  • So after 2-3 days of struggle, I found solution to my own question. Someone may find useful.

    I switched on debug mode of apache tomcat 7 (I am using log4j2 and already it was configured) and apache tomcat 8 on two different system and compared working log of apache tomcat 7 with non-working log of apache tomcat 8. I found that tomcat8 is scanning many extra and irrelevant things.

    I updated context.xml, located in Tomcat's /conf directory as follow and that worked for me.

    <JarScanner scanClassPath="false"/>
    

    Please note following :

    1. Placing above in app specific context.xml didn't worked for me.
    2. Updating catalina.properties file with tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\*.jar was also not working for me.
    3. After doing changes I was facing error : java.lang.IllegalStateException: No output folder but that was due to wrong permission/ownership of tomcat folder.