我想在Scala2.11.xAkka2.3.x中使用spray.io,并在spray.io的Project页面中找到以下内容:
spray 1.3.1 is built against Scala 2.10.3 and Akka 2.3.0 as well as Scala 2.11.1 and Akka 2.3.2.当我使用喷雾客户机时,我遇到了一些问题,然后在spray.io的文档页面中发现,喷雾客户端依赖于akka 2.10.x:
akka-actor 2.2.x (with ‘provided’ scope, i.e. you need to pull it in yourself)提供范围意味着什么?如何将它与用Scala2.11.xAkka2.3.x编写的程序的其他部分一起使用?
编辑
下面是文件页中列出的最简单的用例
import akka.actor.ActorSystem
import scala.concurrent.Future
object main {
def main(args: Array[String]) {
import spray.http._
import spray.client.pipelining._
implicit val system = ActorSystem()
import system.dispatcher // execution context for futures
val pipeline: HttpRequest => Future[HttpResponse] = sendReceive
val response: Future[HttpResponse] = pipeline(Get("http://spray.io/"))
}
}使用build.sbt:
scalaVersion := "2.11.1"
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.2"
libraryDependencies += "io.spray" % "spray-client" % "1.3.1"虽然这编译得很好,但它满足运行时错误,如下所示:
Uncaught error from thread [default-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[default]
java.lang.NoClassDefFoundError: scala/runtime/AbstractPartialFunction$mcVL$sp
at ...发布于 2014-09-09 13:17:58
一个提供的依赖意味着,spray要求这种依赖,但希望开发人员在他们的构建配置中提供它。因此,您需要在构建配置中添加akka-参与者。
如果使用的是sbt,则可以向依赖项添加以下行。
"com.typesafe.akka" %% "akka-actor" % 2.3.2,https://stackoverflow.com/questions/25743684
复制相似问题