2013-10-17 35 views
3

我需要使用JPA 2.0(使用EclipseLink实现)。问题是我还需要在一个实现Java EE 5规范的WebLogic 10.3.6服务器中部署这个应用程序,所以它不需要支持JPA 2.WebLogic Server 10.3.6中的JPA 2.0

我知道有patches that can be used to add support for JPA 2.0 in this version,但系统管理员不想改变服务器上的任何东西

我试着添加javax.persistence-2.1.0.jar文件到我的战争中,认为我的应用只是使用这个文件而不是提供的文件由WebLogic提供。这有意义吗?有没有办法实现这一点,而不必惹恼服务器?

+0

可能是您需要降级您的Web应用程序中的JPA。你有全部的照片吗? –

回答

2

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

了我的头顶部,你需要重写的类名是org.eclipse.persistence。*和javax.persistence。*

(请注意,这将不低于10.3.5应该对任何人任何工作否则试试这个)。

+1

“重写类名”是什么意思?我尝试创建一个weblogic.xml文件并使用org.eclipse.persistence。*和javax.persistence。*的prefer-application-packages,但是会引发以下异常:“实例化Persistence Provider类org.eclipse.persistence时出错。 PersistenceUnit的jpa.PersistenceProvider pu:java.lang.ClassCastException:org.eclipse.persistence.jpa.PersistenceProvider“ – zootropo

+0

您是否将persistence.xml文件设置为使用正确的[新]持久性提供程序? –

+0

我自己遇到这个问题后,似乎并没有支持JPA 2.1。我能够获得服务器识别的Eclipselink 2.5.1,但我永远无法获得JPA(2.0)的服务器版本覆盖。 – Stieffers