Rozwiązany!
Kluczowa była sugestia Artura Licisa. W jakiś sposób sterownik mysql został niepoprawnie pobrany. Wyglądał na plik .jar, ale nie udało się go załadować. Tomcat pokazywał tylko pierwszy poziom wyjątku:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
[...]
Ale kiedy zakodowałem bardzo prosty helloworld za pomocą Class.forName("com.mysql.jdbc.Driver"), zamiast tego pojawił się następujący błąd:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
[...]
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
[...]
Eureko! Otwarcie pliku .jar na WinRar pokazuje, że można go otworzyć... ale z pewnymi błędami.
Ponowne pobranie sterownika rozwiązało problem.
Głosuj przeciw sobie :-(