Хотя я не придумал хороших диагностических утилит, кроме трассировки стека, я все же понял, что происходит. Естественно, трассировка стека имеет ключ:
Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
Источник данных был определен в файле context.xml в веб-приложении, что означает, что драйвер загружался Tomcat с помощью родительского загрузчика классов в веб-приложение. Этот загрузчик классов не имеет доступа к пути к классам приложения.
Решение состоит в том, чтобы поместить jar mysql в каталог общей библиотеки Tomcat.
Другое решение состоит в том, чтобы встроить DataSource в приложение, а не использовать управление данными DataSource от Tomcat, что позволяет использовать стандартный дистрибутив Tomcat.