Tomcat 7 “SEVERE: A child container failed during start”

When a servlet 3.0 application starts the container has to scan all the classes for annotations (unless metadata-complete=true). Tomcat uses a fork (no additions, just unused code removed) of Apache Commons BCEL to do this scanning. The web app is failing to start because BCEL has come across something it doesn’t understand.

If the applications runs fine on Tomcat 6, adding metadata-complete=”true” in your web.xml or declaring your application as a 2.5 application in web.xml will stop the annotation scanning.

At the moment, this looks like a problem in the class being scanned. However, until we know which class is causing the problem and take a closer look we won’t know. I’ll need to modify Tomcat to log a more useful error message that names the class in question. You can follow progress on this point at:
https://issues.apache.org/bugzilla/show_bug.cgi?id=53161

Leave a Comment