исключение classcast из загруженного класса расширения класса - PullRequest
2 голосов
/ 08 марта 2012

Сегодня столкнулся с проблемой.

abc.ClassA a = (abc.ClassA) request.getsession().getAttribute();

и здесь я получаю исключение в классе.

На

abc.ClassA есть ссылка из файла jar в пути сборки проекта.

Я также читал о том, что класс загружается различными загрузчиками классов, и проблема может быть связана с этим.

1 Ответ

1 голос
/ 08 марта 2012

Ваш класс был загружен двумя разными загрузчиками классов.
Я полагаю, ваш jar расположен дважды в иерархии загрузчиков классов: один раз где-то в родительском пути (lib of weblogic?) И один раз у потомка (war?)

Лучшее решение - поместить jar-файл только один раз в classpath.

Если это невозможно, вы можете попробовать изменить поведение загрузчиков классов: первый-клиент-последний.

Совет: вы можете отладить его и получить проблемные загрузчики классов довольно легко.Остановитесь в отладчике в проблемной строке, а затем сравните request.getsession().getAttribute().getClass().getClassloader() и abc.ClassA.class.getClassloader()

...