Получение класса бросило исключение, где оба класса являются точно тем же

Я делаю проект ШВА JBoss и когда я просматриваю форму, я получаю эту ошибку.

java.lang.ClassCastException:
it.cogitoweb.csi.entity.csiorelav.CsiTipoLav cannot be cast to
it.cogitoweb.csi.entity.csiorelav.CsiTipoLav

Его alway тот же класс JPA, который связан с формой, которую показывают на экране, он не имеет смысла мне, почему это - тот же класс, это кажется невозможным.

21
задан Paolo Forgia 16 August 2017 в 12:42
поделиться

3 ответа

Это происходит, когда два разных объекта ClassLoader загружают классы с одинаковым именем. Равенство двух классов в Java зависит от полного имени и загрузчика классов, который его загрузил.

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

38
ответ дан 29 November 2019 в 06:49
поделиться

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

Скорее всего, у вас есть дубликат копии CsiTipoLav в вашем приложении, и две разные копии загружаются в разное время из разных загрузчиков классов. JBoss имеет множество различных загрузчиков классов в иерархии, и очень легко сделать что-то необычным.

Убедитесь, что у вас есть только одна копия класса.

5
ответ дан 29 November 2019 в 06:49
поделиться

Объект, который вы пытаетесь преобразовать, загружается другим загрузчиком классов, чем тот, который загрузил класс, в который вы пытаетесь преобразовать.

2
ответ дан 29 November 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: