Бывает, что в большом проекте, работающем в jvm, внезапно Оказывается, приложение не работает и даже не запускается при обновлении какой-либо из зависимостей проекта.
То же самое возможно из-за любого другого события, которое изменило порядок библиотек в пути к классам приложения.
Лирическое отступление о причине этого явления , все до безобразия просто.
В jvm до реализации проекта головоломка «из коробки» невозможно было в одной jvm одновременно загрузить несколько разных версий одного и того же класса с одним и тем же именем пакета+класса (полное имя) из разных jar-файлов.
Были загрузчики классов J2EE, самописные загрузчики классов или их композиции, OSGI-контейнеры, но это тема другой публикации и совсем другого мира.
В итоге загрузился только один из этих классов и не факт, что оно было нужное со всеми вытекающими отсюда последствиями.
Итак, что, если ваше приложение начало выдавать шквал NoSuchMethodError/ClassNotFoundException или вести себя странно без единого изменения в исходном коде проекта.
Вам поможет отчет о повторяющихся классах, их загрузчиках и ресурсах, который можно сделать с помощью библиотеки.
jАид .
Если вы можете изменить код приложения, то просто добавьте в зависимость артефакт maven. org.jhades:jhades:1.0.4 и фрагмент кода Теги: #jarhell #jHades #aspectj-scripting #разработка веб-сайтов #открытый исходный код #программирование #java
-
Грибы
19 Oct, 24 -
Убунту. Русификация Консоли В 2016 Году
19 Oct, 24 -
Число И Количество Бекона
19 Oct, 24