ошибка компиляции akka http

Я новичок в фреймворке 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)

Как можно это исправить?


person mah454    schedule 15.12.2016    source источник


Ответы (1)


Это просто ошибка при создании экземпляра вашего ActorMaterializer:

implicit val materializer = ActorMaterializer

следует заменить на

implicit val materializer = ActorMaterializer()

С допустимым материализатором в области действия неявное преобразование между Route и Flow[HttpRequest, HttpResponse, _] должно произойти, как и ожидалось, и компилятор должен быть доволен.

person Stefano Bonetti    schedule 15.12.2016
comment
Это облом. Мы также зарегистрировали проблему с IntelliJ, чтобы предупредить о подобных проблемах: youtrack.jetbrains.com/issue /SCL-12026 - person jrudolph; 23.05.2017