使用Glassfish 3.1.2取消部署和部署WebArchive(.war)时,我产生了奇怪的效果。重新部署之后JPA Entitiy中的ClassCastException(Glassfish 3.1.2)
$ asadmin undeploy myWebApp; asadmin deploy target/myWebApp.war
它通常部署,但是当我通过实体管理器获取实体bean,它抛出一个异常: [#|2012-12-11T15:26:09.772+0100|SEVERE|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=119;_ThreadName=Thread-2;|java.lang.ClassCastException: org.YourEntity cannot be cast to org.YourEntity
唯一的例外是在q.getSingleResult抛出()调用。
@PersistenceContext(unitName = "org.my-PU")
private EntityManager em = Persistence.createEntityManagerFactory("org.my-PU").createEntityManager();
...
public YourEntity findYourEntity() throws Exception {
TypedQuery<YourEntity> q = em.createQuery("select ye from YourEntity ye",
YourEntity.class);
return q.getSingleResult();
}
我使用以下JPA相关的依赖项目:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.1.0.7.0</version>
</dependency>
当我重新启动了GlassFish,不会出现异常了。使用类似设置取消部署/部署.ear时,我从来没有看到过这个问题。有没有人看到错误并知道如何克服它?这不是一个大问题,但烦人。