我将使用Eclipse和Glassfish作为Java EE的第一步。我创建了三个eclipse项目(JPA项目,EJB项目,Web项目)。我已经使用本地接口TestBeanLocal创建了一个本地EJB bean TestBean:
@Stateless
@LocalBean
class TestBean implements TestBeanLocal {
@Override
public void doSomething(List<JPAEntity> myEntities) {
for(JPAEntity a : myEntities) {
}
}
}
和使用EJB的ManagedBean:
@MangagedBean
public class MyBean {
@EJB
private TestBeanLocal testBean;
@PostConstruct
private void init() {
//load JPAEntity from Database
List<JPAEntity> myEntities = ....
testBean.doSomething(myEntities);
}
}
我的问题是我在TestBean的for循环中得到了ClassCastException。
java.lang.ClassCastException: us.mypackage.jpa.JPAEntity cannot be cast to us.mypackage.jpa.JPAEntity
我发现另一个stackoverflow问题,说这个错误消息是因为两个不同的类加载器。我怎样才能解决这个问题?我可以告诉EJB使用我的webproject使用的同一个类加载器吗?
答案 0 :(得分:0)
似乎实体罐位于战争和耳中 尝试从war库中删除实体jar 战争应该看到耳库文件 HTH