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

标签 java jakarta-ee openjpa glassfish-4

我们目前正在将 openjpa 2.2.1 与 Glassfish 3 结合使用。由于无论如何我们都必须对基础设施进行更改,因此我们正在考虑升级到 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 上,同样的事情运行得很好。

最佳答案

鉴于所发布的错误,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

关于java - 有人(成功)使用 Openjpa 和 Glassfish 4 了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398168/

相关文章:

java - 如何保证action类中数据的完整性

java - 有没有办法在java中的单例代码下面打破这个

multithreading - 从 servlet 内的线程访问请求对象

java - 当数据库中的行更改时在 openjpa 中触发事件

mysql - 如何使用TomEE plus和JPA连接并查询数据库?

java - 我的 JSP 返回 202 (SC_ACCEPTED) 状态,但调用者获得 200 (SC_OK) 状态

java - Android 日期时间操作库

java - Maven Eclipse 插件和 openjpa 增强的问题

java - 如何授权 QuickBooks Online 对私有(private)桌面应用程序的请求

java - Drools 引导编辑器给出错误 "Note: No model has been defined."如何定义一个?