Java: исключение при приведении к себе (?) - PullRequest
3 голосов
/ 07 апреля 2011

Я работаю с Oracle WebLogic, Netbeans 6.9.1.У меня есть следующие строки кода:

Query query=entityManager.createNamedQuery("Items.findById").setParameter("id", Integer.parseInt((String) request.getParameter("id")));
Items it=(Items) query.getSingleResult();

, и они выдают исключение:

java.lang.ClassCastException: entity.Items cannot be cast to entity.Items

Даже если это кажется невозможным, я видел аналогичный вопрос о SO: здесь Автор еще не опубликовал решение, но один из участников сделал хорошее предположение о различных загрузчиках классов.

Между тем, если я использую getResultList, а затем работаю с ним в JSP, он работает нормально.Но я не могу заставить кастинг работать в коде сервлета.

Как я могу это исправить в weblogic?

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Это конкретно не решает вашу проблему, но если вы используете WebLogic Server 10.3.x или около того, в составе этого дистрибутива есть веб-приложение, которое вы можете использовать для устранения проблем с загрузкой классов.

Подробнее об этом можно прочитать здесь: http://download.oracle.com/docs/cd/E17904_01/web.1111/e13706/classloading.htm#WLPRG495

Он должен быть совместим с более ранними версиями WebLogic Server, чтобы вы могли использовать его вместе с предлагаемыми обходными путями, чтобы найти решение.

0 голосов
/ 07 апреля 2011

Это действительно похоже на проблему загрузки классов.

Этот мой более ранний ответ объясняет, как проверить это предположение.

К сожалению, проблемы загрузки классов сложны и болезненны.Нет простого решения, только попытаться понять, какие загрузчики классов загружают какие классы и в каком порядке, и попытаться поиграться с вашими загрузчиками классов, классами и jar-файлами, чтобы устранить проблему.Кроме того, проанализируйте последние изменения в вашем приложении до появления этой ошибки - они могут дать ключ к пониманию основной причины.

Я не знаком со схемой загрузки классов в WebLogic, поэтому, к сожалению, я не могу датьВам более конкретный совет.

0 голосов
/ 07 апреля 2011

См. аналогичный вопрос с предлагаемым обходным путем.

...