PlayFramework Slick NoSuchMethodError

时间:2016-06-29 06:52:25

标签: mysql scala playframework slick

我在使用带有mysql的新版本时遇到了奇怪的问题:

[RuntimeException: java.lang.NoSuchMethodError: slick.driver.JdbcProfile$API.streamableQueryActionExtensionMethods(Lslick/lifted/Query;)Lslick/profile/BasicActionComp$$$$6aa48549c0a7603df1fa229cf7177493$$$$sionMethodsImpl;]

在我的application.conf中:

slick.dbs.default.driver = "slick.driver.MySQLDriver$"
slick.dbs.default.db.driver = "com.mysql.jdbc.Driver"
slick.dbs.default.db.url = "jdbc:mysql://localhost/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false"
slick.dbs.default.db.user = "root"
slick.dbs.default.db.password = ""

和代码:

抛出异常:

 Await.result(db.run(table.result), Duration.Inf)

evolutions做得很好,表创建等等。但是在这里我有这么讨厌的错误; /

我的built.sbt:

name := """bettor"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.8"

val utilsDeps = Seq("joda-time" % "joda-time" % "2.9.4",
  "com.github.tototoshi" %% "slick-joda-mapper" % "2.2.0",
  "org.joda" % "joda-convert" % "1.8.1")

val dbsDeps = Seq("com.typesafe.play" %% "play-slick" % "2.0.0",
"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0",
  "mysql" % "mysql-connector-java" % "6.0.2")

val jsonDeps = Seq("org.json4s" %% "json4s-jackson" % "3.4.0",
  "org.jsoup" % "jsoup" % "1.9.2")

libraryDependencies ++= Seq(
  cache,
  ws,
  "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test
) ++ utilsDeps ++ dbsDeps ++ jsonDeps

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"

有任何想法如何解决这个问题?

即使使用此模板而不更改任何内容我也有同样的错误:(

play-slick-mysql

2 个答案:

答案 0 :(得分:4)

在我的情况下,我使用了Seq("-Xmax-classfile-name","78")这里建议的http://www.example.com/\x15\x03\x03\x00\x1A2<\xB4\x02\x89\x1A[\x1F\x9C\x0FG\xF8\x18*\xBCC\x98o\xD7\x1C*\x83[\xA3\xFB\x1E 功能而没有阅读评论(这里提到了这个案例),并且正在努力解决错误超过4个小时。梦魇结束了! Smeagol是免费的!

答案 1 :(得分:0)

嘿,加入构建sbt:

scalacOptions := Seq("-feature")

解决了问题。