【问题标题】:JPA 2.0 in WebLogic Server 10.3.6WebLogic Server 10.3.6 中的 JPA 2.0
【发布时间】:2013-10-25 16:09:28
【问题描述】:

我需要使用 JPA 2.0(带有 EclipseLink 实现)。问题是我还需要将这个应用程序部署在 WebLogic 10.3.6 服务器中,该服务器实现了 Java EE 5 规范,因此不需要支持 JPA 2。

我知道有patches that can be used to add support for JPA 2.0 in this version,但系统管理员根本不想更改服务器中的任何内容

我尝试将 javax.persistence-2.1.0.jar 文件添加到我的战争中,以为我的应用程序将只使用此文件而不是 WebLogic 提供的文件。这有意义吗?有没有办法做到这一点而不必弄乱服务器?

【问题讨论】:

  • 您可能需要在您的 Web 应用程序中降级 JPA。你有全图吗?

标签: jakarta-ee jpa weblogic jpa-2.0 eclipselink


【解决方案1】:

早期版本不支持它,但在 10.3.6 中,您应该能够将自己的库用于 JPA2。如果您使用类名,您应该能够覆盖 weblogic 类链加载,并且 weblogic 通常加载 JPA 的地方它将使用您支持 JPA-2.0 的库。

您需要覆盖的类名是 org.eclipse.persistence.* 和 javax.persistence.*

(请注意,如果其他人尝试这样做,这将不适用于 10.3.5 以下的任何内容)。

【讨论】:

  • “覆盖类名”是什么意思?我尝试创建一个 weblogic.xml 文件并使用 org.eclipse.persistence.* 和 javax.persistence.* 的首选应用程序包,但这会引发以下异常:“实例化持久性提供程序类 org.eclipse.persistence 时出错。 PersistenceUnit pu 的 jpa.PersistenceProvider: java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider"
  • 您是否将 persistence.xml 文件设置为使用正确的 [新] 持久性提供程序?
  • 我自己遇到这个问题后,似乎不支持JPA 2.1。我能够让服务器识别 Eclipselink 2.5.1,但我永远无法覆盖 JPA (2.0) 的服务器版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多