akka http编译错误
akka http compile error
我是 akka 框架的新手,现在尝试使用此框架设置简单的网络服务。
编写一个简单的 akka-http 应用程序:
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import scala.io.StdIn
object MainRunner extends App {
implicit val system = ActorSystem("mySystem")
implicit val materializer = ActorMaterializer
implicit val ec = system.dispatcher
val route =
path("hello") {
get {
complete("Congratulation , this is your response")
}
}
val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)
println(s"Server online at http://localhost:8080/\nPress RETURN to stop...")
StdIn.readLine() // let it run until user presses return
bindingFuture
.flatMap(_.unbind()) // trigger unbinding from the port
.onComplete(_ => system.terminate()) // and shutdown when done
}
编译时收到此错误:
Error:(34, 44) type mismatch;
found : akka.http.scaladsl.server.Route
(which expands to) akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
required: akka.stream.scaladsl.Flow[akka.http.scaladsl.model.HttpRequest,akka.http.scaladsl.model.HttpResponse,Any]
val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)
如何解决这个问题?
实例化您的 ActorMaterializer
:
只是一个简单的错误
implicit val materializer = ActorMaterializer
应替换为
implicit val materializer = ActorMaterializer()
在范围内有一个有效的实体化器,Route
和 Flow[HttpRequest, HttpResponse, _]
之间的隐式转换应该按预期发生,编译器应该会很高兴。
我是 akka 框架的新手,现在尝试使用此框架设置简单的网络服务。
编写一个简单的 akka-http 应用程序:
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import scala.io.StdIn
object MainRunner extends App {
implicit val system = ActorSystem("mySystem")
implicit val materializer = ActorMaterializer
implicit val ec = system.dispatcher
val route =
path("hello") {
get {
complete("Congratulation , this is your response")
}
}
val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)
println(s"Server online at http://localhost:8080/\nPress RETURN to stop...")
StdIn.readLine() // let it run until user presses return
bindingFuture
.flatMap(_.unbind()) // trigger unbinding from the port
.onComplete(_ => system.terminate()) // and shutdown when done
}
编译时收到此错误:
Error:(34, 44) type mismatch;
found : akka.http.scaladsl.server.Route
(which expands to) akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
required: akka.stream.scaladsl.Flow[akka.http.scaladsl.model.HttpRequest,akka.http.scaladsl.model.HttpResponse,Any]
val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)
如何解决这个问题?
实例化您的 ActorMaterializer
:
implicit val materializer = ActorMaterializer
应替换为
implicit val materializer = ActorMaterializer()
在范围内有一个有效的实体化器,Route
和 Flow[HttpRequest, HttpResponse, _]
之间的隐式转换应该按预期发生,编译器应该会很高兴。