Сервер.codec(Http()) не работает, как указано в примере кода

Я пытаюсь попробовать Finagle в первый раз. Я новичок в Scala, поэтому многим из вас этот вопрос может показаться легким.

Я вытащил 6.10.1-SNAPSHOT из GitHub и попытался реализовать пример Robust Server, показанный в документации. Импорт был не совсем понятен для меня, и я заставил их всех работать, кроме одного. Обратите внимание, что в приведенном ниже коде есть один импорт с ошибкой, а также один вызов Http(), который также имеет ошибку.

импорт com.twitter.finagle.http.Http

def main(args: Array[String]) {
    val handleExceptions = new HandleExceptions
    val authorize = new Authorize
    val respond = new Respond

    val myService: Service[HttpRequest, HttpResponse]
        = handleExceptions andThen authorize andThen respond

    val server: Server = ServerBuilder()
    .name("myService")
    .codec(Http()) // Error on this call to Http()
    .bindTo(new InetSocketAddress(8080))
    .build(myService)
}

2 ответа

Решение

Руководство, которому вы следуете (я предполагаю это), довольно устарело. Новые документы здесь http://twitter.github.io/scala_school/finagle.html должны быть лучше (хотя примеры все еще не велики)

Похоже, они переместили кодек HTTP в com.twitter.finagle.Http

Пример кода не соответствует версии 6.10.1-SNAPSHOT. Проблема импорта может быть решена с помощью ссылки на libraryDependencies в build.sbt, которая соответствует версии Finagle, которая использовалась для построения примера:

libraryDependencies ++= Seq(
  "com.twitter" % "finagle-core" % "6.6.2",
  "com.twitter" % "finagle-http" % "6.6.2",
  "com.twitter" % "util-core" % "6.5.0")
Другие вопросы по тегам