Ошибка NoClassDefFound является туманной ошибкой и часто скрывает более серьезную проблему. Это не то же самое, что ClassNotFoundException (которое выдается, когда класс просто отсутствует).
NoClassDefFound может указывать на то, что класса нет, как указывают javadoc, но обычно он генерируется, когда после того, как загрузчик классов загрузил байты для класса и вызвал для них "defineClass". Также внимательно проверьте всю трассировку стека на наличие других подсказок или возможных исключений «причины» (хотя ваша конкретная обратная трассировка не показывает ни одного).
Первое место, которое нужно искать, когда вы получаете NoClassDefFoundError, - это статические биты вашего класса, т. Е. Любая инициализация, которая происходит во время определения класса. Если это не удастся, он выдаст NoClassDefFoundError - он должен генерировать ExceptionInInitializerError и указать детали проблемы, но, по моему опыту, они редки. Он будет делать ExceptionInInitializerError только в первый раз, когда попытается определить класс, после этого он просто выбросит NoClassDefFound. Итак, посмотрите на более ранние журналы.
Поэтому я бы посоветовал взглянуть на код в этой строке HibernateTransactionInterceptor и посмотреть, что ему требуется. Кажется, что он не может определить класс SpringFactory. Поэтому, возможно, проверьте код инициализации в этом классе, это может помочь.
Если вы можете отладить его, остановите его в последней строке выше (17) и выполните отладку, чтобы попытаться найти точную строку, которая вызывает исключение. Также проверьте выше в журнале, если вам очень повезло, что может быть ExceptionInInitializerError.