有人(成功)使用Openjpa和Glassfish 4了吗?

时间:2013-10-16 08:07:09

标签: java java-ee openjpa glassfish-4

我们目前正在使用带有Glassfish 3的openjpa 2.2.1。由于我们不得不对我们的基础设施进行更改,我们正在考虑升级到Glassfish 4.不幸的是,我无法让OpenJpa使用它。每当我尝试访问实体时,我都会得到AbstractMethodErrors

Caused by: java.lang.AbstractMethodError: org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(Ljavax/persistence/SynchronizationType;Ljava/util/Map;)Ljavax/persistence/EntityManager;

(即如果我使用openjpa-maven-plugin在构建期间增强了分类)。如果我使用动态增强功能,我甚至无法部署应用程序。

如果我将持久性提供程序切换到EclipseLink,它似乎工作正常。不幸的是,更改持久性提供程序并不是一个选项,因为我们使用了一些OpenJPA功能。

我也尝试过OpenJpa 2.2.2,结果相同。在Glassfish 3上,同样的事情运行得很好。

1 个答案:

答案 0 :(得分:1)

鉴于发布的错误,看起来Glassfish 4假设使用JPA 2.1提供程序(由于在创建EM时使用了SynchronizationType参数)。 OpenJPA(尚未)支持JPA 2.1规范。

您需要禁用或删除Glassfish 4中的JPA 2.1 API,以便可以使用JPA 2.0 API(与OpenJPA一起打包)。我不确定这种禁用对Glassfish有多容易或可行。

这个问题刚刚作为OpenJPA的JIRA创建并引用了这个stackoverflow帖子: https://issues.apache.org/jira/browse/OPENJPA-2471