我正在使用GlassFish 3.1.2.2(由於操作系統限制,我無法升級到4)。升級GlassFish 3.1.2.2以使用JPA 2.1
我有興趣將JPA 2.0升級到JPA 2.1 GlassFish 3.1.2.2。我怎樣才能做到這一點?
我正在使用GlassFish 3.1.2.2(由於操作系統限制,我無法升級到4)。升級GlassFish 3.1.2.2以使用JPA 2.1
我有興趣將JPA 2.0升級到JPA 2.1 GlassFish 3.1.2.2。我怎樣才能做到這一點?
這很可能根本不可能。 JPA 2.1是EE 7的一部分,因此不能與EE 6 GF 3.1.2.2完全集成。
您是否嘗試更換Glassfish中的EclipseLink和JPA jar文件?
它可能會工作,但是如果您使用託管持久性單元,它們將不公開任何JPA 2.1 API,您需要解包EntiyManager以訪問它們。
是的,我嘗試更換
我在Glassfish 3.1.2.2上使用Hibernate 4.3.8(需要JPA 2.1)。
注意:我沒有使用glassfish提供的任何服務。我使用的所有庫都位於WEB-INF/lib中。
1 - 使用JPA 2.1版本覆蓋glassfish/modules/javax.persistence.jar
中的所有JPA類(包javax.persistence
)。你應該不能代替整個JAR,只能覆蓋類。這個JAR有一個OSGI清單和其他類必須保留在那裏。
2 - 從glassfish/modules/weld-osgi-bundle.jar
刪除所有javassist類(包javasssist
)。如果你使用Hibernate,這解決了可能的不兼容問題。
上面的變化後,就像一個魅力 – user1999453
你有這個成功嗎?我也休眠4.3.5升級繼續,我們仍然使用glassfish 3.2.2。我想替換javax.persistence.jar,它讓我工作,但我們有多個集羣,升級此jar後,我的作業調度程序應用程序部署失敗,出現'EJB定時服務不可用'的奇怪問題。你爲此升級了哪些罐子? – deepakraut
我無法升級GF 3以使用JPA 2.1,JPA 2.1需要JDK 7 因此您必須使用GF 4.關於您的問題可能與JPA無關,而與EJB版本有關。例如,如果用戶使用EJB,則定時器服務將不受支持 –