意外的ClassCastException ...使用EJB

时间:2012-01-26 06:51:08

标签: ejb-3.0 classcastexception

我正面临一个非常小的问题,这让我很生气。

我从名为SlBrowseProducts的无状态会话bean调用业务方法'public List getPsubcategoryList()'。此方法使用entitymanager实例从数据库表中检索映射到名为Psubcategory的实体类的对象列表。我使用了一个namedQuery。返回的列表包含Object类型的元素,我必须附加一个名为myIterator的迭代器来列出并将myIterator.next()的每一个转换为类型Psubcategory以使结果元素有用并在其上运行任何getter。但是这个转换返回了以下错误..

SEVERE:java.lang.ClassCastException:entitybeans.Psubcategory无法强制转换为entitybeans.Psubcategory

我试着广泛搜索它以找到它的原因..我遇到了一个叫做“ClassLoader Hell”的东西,这可能会导致它......

这个问题有没有解决办法?有没有其他方法围绕这...我已经尝试不使用Iterator而是使用for循环...但即便如此我必须施放..这再次让我遇到同样的问题..

请按时完成帮助。

==================== 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 :(得分:0)

@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());
   }