(Это уточнение ответа Питера Лори)
Одной из распространенных причин исключений NoClassDefFoundError
является попытка загрузить класс, для которого ранее произошла ошибка загрузки класса, или что зависит от класса, который ранее не смог загрузить класс.
Если это то, что происходит, трассировка стека для последующих исключений NoClassDefFoundError
, как правило, неинформативна. Истинную причину проблемы обычно можно найти в более раннем событии журнала.
Я сомневаюсь, что Tomcat автоматически уничтожает вещи. Если бы это было так, я бы ожидал, что другие симптомы. (Даже если Tomcat что-то отменяет, JVM выгружает класс, только если он более недоступен. И любая попытка загрузить какой-либо другой класс, который зависит от выгруженного класса, приведет к загрузке новой копии из пути к классам.)
Что касается источника проблемы, есть большая вероятность того, что у вас есть проблема в статической инициализации вашего приложения. Вы настроили webapp для ленивой загрузки некоторых сервлетов?