Play Framework 1.2.5 Hibernate升级到v 4.2.4

时间:2013-08-27 19:48:38

标签: java hibernate playframework playframework-1.x

我正在尝试将Hibernate v 3.6(与Play Framework 1.2.5打包)升级到Hibernate 4.2.4。

我已经编辑了dependencies.yml来从maven jboss repo中获取。我还运行了游戏deps --sync并看到添加到lib /的jar。

现在,当我运行应用程序时,我得到以下...堆栈跟踪。

java.lang.IllegalAccessError: tried to access method org.hibernate.cfg.Configuration.<init>(Lorg/hibernate/cfg/SettingsFactory;)V from class org.hibernate.ejb.Ejb3Configuration

org.hibernate.ejb.Ejb3Configuration [Ejb3Configuration.java : 161]
play.db.jpa.JPAPlugin [JPAPlugin.java : 118]
play.plugins.PluginCollection [PluginCollection.java : 525]
play.Play [Play.java : 526]
play.Play [Play.java : 630]
play.Invoker$Invocation [Invoker.java : 198]
play.server.PlayHandler$NettyInvocation [PlayHandler.java : 189]
play.Invoker$Invocation [Invoker.java : 276]
play.server.PlayHandler$NettyInvocation [PlayHandler.java : 229]
java.util.concurrent.Executors$RunnableAdapter [Executors.java : 471]
java.util.concurrent.FutureTask$Sync [FutureTask.java : 334]
java.util.concurrent.FutureTask [FutureTask.java : 166]
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask [ScheduledThreadPoolExecutor.java : 178]
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask [ScheduledThreadPoolExecutor.java : 292]
java.util.concurrent.ThreadPoolExecutor [ThreadPoolExecutor.java : 1145]
java.util.concurrent.ThreadPoolExecutor$Worker [ThreadPoolExecutor.java : 615]
java.lang.Thread [Thread.java : 722]

我猜错了是因为在类路径中引用了多个hibernate jar。这是真的,所以我手动编辑了类路径以删除旧的hibernate jar。但这也没有帮助。

1 个答案:

答案 0 :(得分:0)

我猜hibernate 3.x和4.x不完全兼容所以你必须修改框架本身的一些源代码才能使用这个版本的hibernate。

您可以从hibernate 4.1.3附带的1.3.x github分支开始:https://github.com/playframework/play1/tree/1.3.x