Scala 无法访问值akka.http.javadsl.unmarshalling中的类型Unmarshaller

Scala 无法访问值akka.http.javadsl.unmarshalling中的类型Unmarshaller,scala,akka-http,Scala,Akka Http,我正在尝试使用Akka Http客户端API编写一个简单的Http客户端。为此,我编写了以下代码 import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.model._ import akka.http.scaladsl.unmarshalling._ import akka.stream.ActorMaterializer import akka.stream.scaladsl

我正在尝试使用Akka Http客户端API编写一个简单的Http客户端。为此,我编写了以下代码

import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model._
import akka.http.scaladsl.unmarshalling._
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.{Sink, Source}
import scala.concurrent.duration._
import scala.concurrent.{Await}
import akka.http.scaladsl.server.Directives
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
import spray.json._

final case class Post(postId: Int, id: Int, name: String, email: String, body: String)

trait JsonSupport extends SprayJsonSupport with DefaultJsonProtocol {
   implicit val postFormat = jsonFormat5(Post.apply)
}

class AkkaHttpClient extends App with Directives with JsonSupport {
   implicit val system = ActorSystem("my-Actor")
   implicit val actorMaterializer = ActorMaterializer()
   implicit val executionContext = system.dispatcher
   val httpClient = Http().outgoingConnection(host="http://jsonplaceholder.typicode.com/")
   val flow = Source.single(HttpRequest(uri = Uri("/comments/1")))
      .via(httpClient)
      .mapAsync(1)(r => Unmarshal(r.entity).to[Post])
      .runWith(Sink.head)

   val results = Await.result(flow, 15 seconds)
   println(results)
}
我的build.sbt文件看起来像

name := "Akka-Http-Client"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
   "com.typesafe.akka" %% "akka-http-experimental" % "2.4.9-RC1",
   "com.typesafe.akka" %% "akka-http-spray-json-experimental" % "2.4.9-RC1"
)
当我试图编译我的代码时,我得到了这些错误

Error:scalac: missing or invalid dependency detected while loading class file 'Unmarshaller.class'.
Could not access type Unmarshaller in value akka.http.javadsl.unmarshalling,
because it (or its dependencies) are missing. Check your build definition for
missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
A full rebuild may help if 'Unmarshaller.class' was compiled against an incompatible version of akka.http.javadsl.unmarshalling.

我在2.4.9-RC1上遇到了同样的问题,回到2.4.8解决了这个问题

或者,您可以使用此处描述的解决方法: