Сервер.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")