2013-08-27 46 views
1

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

我编辑了dependencies.yml以从maven jboss回购中获取。我也跑了play 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] 

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

回答

0

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

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

相关问题