2013-10-01 47 views
0

我有一個Play 2.2已經運行在幾個系統上。 今天,我將它部署到運行Ubuntu Server 13.04的新服務器上,其中Java版本爲1.7.0_40b43。開始播放2.2應用程序使用sbt開始工作,但dist-ed版本給出java.lang.IncompatibleClassChangeError

運行使用sbt start作品完美的應用程序,一切都如我希望它是......然而,sbt clean dist -ed版本自帶UIP但下列情況除外:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:127) 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) 
    at play.db.jpa.JPAPlugin.onStart(JPAPlugin.java:35) 
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88) 
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88) 
    at scala.collection.immutable.List.foreach(List.scala:318) 
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:88) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:88) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:88) 
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18) 
    at play.api.Play$.start(Play.scala:87) 
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:52) 
    at play.core.server.NettyServer$.createServer(NettyServer.scala:243) 
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:279) 
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:274) 
    at scala.Option.map(Option.scala:145) 
    at play.core.server.NettyServer$.main(NettyServer.scala:274) 

我在一個位暗示爲什麼dist -ed版本的行爲與sbt start -ed版本不同;並提出這個錯誤?

回答

0

我最終通過添加「org.hibernate」%「hibernate」%「3.5.1-Final」作爲依賴項來實現它。添加這個會觸發3.0.5的依賴項被重寫,否則它會將org.hibernate.hibernate-3.0.5.jar添加到庫中。

仍在調查爲什麼其他系統沒有這個問題。