Неожиданное исключение ClassCastException ... с использованием EJB - PullRequest
0 голосов
/ 26 января 2012

Я столкнулся с очень маленькой проблемой, которая сводит меня с ума ..

Я вызываю бизнес-метод public list getPsubcategoryList () из сеанса без состояния с именем SlBrowseProducts .. этот метод использовал экземпляр entitymanager для извлечения списка объектов из таблицы базы данных, сопоставленной с классом Entity с именем Psubcategory. это я сделал с помощью namedQuery. Возвращаемый список содержит элементы типа Object, я должен прикрепить итератор с именем myIterator к списку и привести каждый из myIterator.next () к типу Psubcategory, чтобы сделать элемент результата полезным и запустить на нем любые методы получения. Однако это приведение вернуло следующую ошибку.

SEVERE: java.lang.ClassCastException: entitybeans.Psubcategory не может быть приведен к entitybeans.Psubcategory

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

Есть ли решение этой проблемы. Есть ли другой способ обойти это ... Я пытался не использовать Iterator и вместо этого использовать для цикла ... но даже тогда я должен бросить .. что снова приводит меня к той же проблеме ..

Пожалуйста, помогите мне по графику.

==================== JSP PAGE ==================

List<Psubcategory> subcategoryList1 = slbp.getProductSubcategories();                
if(subcategoryList1.size()!=0){
   for(int i=0;i<subcategoryList1.size();i++){
      Psubcategory temp = subcategoryList1.get(i);
      System.out.print(temp.getSubcategory());
   }
}

====================== SLBrowseProducts.java ======================

@Stateless
@LocalBean
public class SLBrowseProducts implements TestInterface {

   EntityManagerFactory emf = Persistence.createEntityManagerFactory("INNOVATIVE-INDOORSPU");
   EntityManager em = emf.createEntityManager();    

   @Override
   public List getProductSubcategories(){
      List subcategoryList=em.createNamedQuery("Psubcategory.findAll").getResultList();        
      return subcategoryList;
   }
}

1 Ответ

0 голосов
/ 26 января 2012
@Stateless
@LocalBean
public class SLBrowseProducts implements TestInterface {

   EntityManagerFactory emf = Persistence.createEntityManagerFactory("INNOVATIVE-INDOORSPU");
   EntityManager em = emf.createEntityManager();    

   @Override
   public List<Psubcategory> getProductSubcategories(){
         List<Psubcategory> subcategoryList=
                                em.createNamedQuery("Psubcategory.findAll").getResultList();        
      return subcategoryList;
   }
}
============================================================================================
List<Psubcategory> subcategoryList1 = slbp.getProductSubcategories();                
   for(Psubcategory temp : subcategoryList1){
      System.out.print(temp.getSubcategory());
   }
...