سؤال

I am migrating play2.0 app to play2.1 which has a lot of scalaquery implemented . with all the migration changes its finally compiled ( not using anorm) the scalaqueries are still there .

play compile and stage is successful but its giving following error

java.lang.NoClassDefFoundError: scala/Right

 org.scalaquery.ql.basic.BasicImplicitConversions$class.queryToQueryInvoker(BasicImplicitConversions.scala:26)

 org.scalaquery.ql.extended.MySQLDriver$$anon$1.queryToQueryInvoker(MySQLDriver.scala:13)

 models.SynonymMappings$$anonfun$updateCommonSynonymMappingTable$1.apply(SynonymMapping.scala:234)

 models.SynonymMappings$$anonfun$updateCommonSynonymMappingTable$1.apply(SynonymMapping.scala:224)

 org.scalaquery.session.Database.withSession(Database.scala:38)

 models.SynonymMappings$.updateCommonSynonymMappingTable(SynonymMapping.scala:224)

 Global$.onStart(Global.scala:48)

 play.api.GlobalPlugin.onStart(GlobalSettings.scala:175)

 play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:85)

 play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:85)

 scala.collection.immutable.List.foreach(List.scala:309)

 play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:85)

 play.api.Play$$anonfun$start$1.apply(Play.scala:85)

 play.api.Play$$anonfun$start$1.apply(Play.scala:85)

 play.utils.Threads$.withContextClassLoader(Threads.scala:18)

 play.api.Play$.start(Play.scala:84)

SynonymMappings.scala This is where i am getting error

     def updateCommonSynonymMappingTable = database.withSession { implicit db: Session =>

val q = for (m <- SynonymMappings) yield m.skill ~ m.synonyms ~ m.function ~ m.industry
Logger.debug("Q for getting common syn mapping: " + q.selectStatement)

var table: java.util.concurrent.ConcurrentHashMap[String, scala.Array[String]] = EfoundrySynonymEngine.getCommonSynonymMappingTable()

var i = 0
Logger.debug("Q for getting common syn mapping: " + q.selectStatement)
var domainSpWords = 0

form this line trace goes to org.scalaquery.session.Database.withSession

هل كانت مفيدة؟

المحلول

As of Play Framework 2.1, ScalaQuery is deprecated, as it, along with Play Framework 2.0, only supports Scala 2.9.

Play Framework 2.1 supports Scala 2.10. The replacement for ScalaQuery is Slick, which also supports/requires Scala 2.10.

Slick web site: http://slick.typesafe.com/

It's a much cooler web site, so you should be happy.

So include that library in your web app and get rid of ScalaQuery, which should help you along on your migration effort.

And if you're curious, that class not found error is because scala.Right is now scala.util.Right :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top