Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
升级GlassFish 3.1.2.2以使用JPA 2.1_Jpa_Glassfish_Jpa 2.0_Glassfish 3 - Fatal编程技术网

升级GlassFish 3.1.2.2以使用JPA 2.1

升级GlassFish 3.1.2.2以使用JPA 2.1,jpa,glassfish,jpa-2.0,glassfish-3,Jpa,Glassfish,Jpa 2.0,Glassfish 3,我正在使用GlassFish 3.1.2.2,由于操作系统的限制,我无法升级到4 我有兴趣将JPA2.0升级到JPA2.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,您需要打开EntityManager来访问这些A

我正在使用GlassFish 3.1.2.2,由于操作系统的限制,我无法升级到4


我有兴趣将JPA2.0升级到JPA2.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,您需要打开EntityManager来访问这些API。

我使用的Hibernate 4.3.8需要JPA 2.1和Glassfish 3.1.2.2

注意:我没有使用glassfish提供的任何服务。我使用的所有库都在WEB-INF/lib中

1-使用JPA2.1版本覆盖glassfish/modules/javax.persistence.jar中的所有JPA类包javax.persistence。您不应该替换整个JAR,而应该重写类。这个JAR有一个OSGI清单和其他必须保留在那里的类


2-从glassfish/modules/weld-osgi-bundle.jar中删除所有javassist类包javasssist。这解决了使用Hibernate时可能出现的不兼容问题。

是的,我尝试替换\glassfish\modules下的eclipseLink和JPA JAR,但在使用托管持久性时,它没有像您编写的那样工作。我不知道如何打开EntitiyManager来访问这些。您在这方面取得了成功吗?我还进行了Hibernate4.3.5升级,我们仍在使用glassfish 3.2.2。我想替换javax.persistence.jar,它让我工作,但我们有多个集群,升级这个jar后,我的作业调度程序应用程序部署失败,出现了“EJB计时器服务不可用”的奇怪问题。您为此升级了哪些JAR?我无法升级GF 3以使用JPA 2.1,JPA 2.1需要JDK 7,因此您必须使用GF 4。关于您的问题,可能与JPA无关,而是与EJB版本有关。例如,如果您使用EJB light,则不支持计时器服务