使用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時,我從來沒有看到過這個問題。有沒有人看到錯誤並知道如何克服它?這不是一個大問題,但煩人。