scala.tools.reflect.ToolBoxError 异常

标签 scala sbt sorm

我遇到了一个问题,无法解决。 今天,我在构建项目时遇到错误。此错误在主题中进行了描述: Why do I get conflicting cross-version in sbt on one environment but not another?

据我了解,新版本的 scala 已发布(2.12.0-M1),并且依赖关系已被破坏。 这个问题的答案是使用代码覆盖“org.scala-lang”和“scala-compiler”依赖关系:

dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value

我的scala版本是scalaVersion := "2.11.1" 。 这解决了构建项目的问题。 服务器运行成功,但是当我尝试调用DB时对象(扩展 Instance )来执行查询我得到一个异常:

play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.ExceptionInInitializerError]]
        at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.7.jar:2.3.7]
        at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.7.jar:2.3.7]
        at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.7.jar:2.3.7]
        at scala.Option.map(Option.scala:146) [scala-library-2.11.6.jar:na]
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
        at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:523) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129) ~[play_2.11-2.3.7.jar:2.3.7]
Caused by: java.lang.ExceptionInInitializerError: null
        at models.dao.UserDAO$.getUser(UserDAO.scala:32) ~[classes/:na]
        at controllers.User$$anonfun$login$1.apply(User.scala:82) ~[classes/:na]
        at controllers.User$$anonfun$login$1.apply(User.scala:80) ~[classes/:na]
        at play.api.mvc.ActionBuilder$$anonfun$apply$16.apply(Action.scala:433) ~[play_2.11-2.3.7.jar:2.3.7]
        at play.api.mvc.ActionBuilder$$anonfun$apply$16.apply(Action.scala:432) ~[play_2.11-2.3.7.jar:2.3.7]
Caused by: scala.tools.reflect.ToolBoxError: reflective compilation has failed: cannot initialize the compiler due to java.lang.VerifyError: scala/tools/reflect/ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.liftedTree1$1(ToolBoxFactory.scala:344) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.compiler$lzycompute(ToolBoxFactory.scala:330) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.compiler(ToolBoxFactory.scala:329) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:356) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:354) ~[scala-compiler-2.11.1.jar:na]
Caused by: java.lang.VerifyError: scala/tools/reflect/ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.liftedTree1$1(ToolBoxFactory.scala:334) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.compiler$lzycompute(ToolBoxFactory.scala:330) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$api$.compiler(ToolBoxFactory.scala:329) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:356) ~[scala-compiler-2.11.1.jar:na]
        at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:354) ~[scala-compiler-2.11.1.jar:na]

我认为这与 scala 更新和配置问题有关,因为昨天我使用了相同的服务,没有任何异常。

我的build.sbt :

name := """XXXX"""

version := "1.0-SNAPSHOT"

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

scalaVersion := "2.11.1"

dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws,
  "org.sorm-framework" % "sorm" % "0.3.18",
  "com.typesafe.play" %% "play-mailer" % "2.4.0",
  "com.typesafe.play" %% "play-json" % "2.3.7",
  "postgresql" % "postgresql" % "9.1-901.jdbc4",
  "com.sksamuel.scrimage" %% "scrimage-core" % "1.4.2",
  "com.sksamuel.scrimage" %% "scrimage-canvas" % "1.4.2",
  "com.sksamuel.scrimage" %% "scrimage-filters" % "1.4.2",
  "com.notnoop.apns" % "apns" % "1.0.0.Beta6",
  "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
)

有什么想法为什么会发生这种情况吗?

谢谢

最佳答案

我也有同样的错误。将 scalaVersion 增加到 2.11.6 解决了这个问题。

关于scala.tools.reflect.ToolBoxError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106585/

相关文章:

Scala:具有通用特征的无形泛型

scala - 使用递归 Scala 的质数分解

playframework - Play 无法解析 org.alfresco :alfresco-web-service-client dependency

java - 在 sbt 中强制执行 Scala 项目的 Java 版本?

scala - SBT:将哪些文件置于版本控制之下?

scala - 使用游戏拆分多个项目! 2 (斯卡拉)

scala - 如何在 Sorm 中为一个有很多 child 的实体建模?

SORM:将字段映射到自定义列名?

scala - SORM:我如何声明外键?

java - 在 Test = false 配置选项被忽略时 Play 2.3.7