服务器.codec(Http())不能像示例代码中指定的那样工作

时间:2013-12-29 05:36:53

标签: finagle twitter-finagle

我试图第一次尝试Finagle。我是Scala的新手,所以这个问题对你们很多人来说都很容易。

我从GitHub中提取了6.10.1-SNAPSHOT,并试图实现文档中显示的Robust Server示例。进口对我来说并不完全清楚,除了一个以外,我得到了所有的进口。请注意下面的代码中有一个导入错误以及一次调用Http()也有错误。

import 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 个答案:

答案 0 :(得分:2)

您正在关注的指南(我假设this一个)已经过时了。这里的新文档http://twitter.github.io/scala_school/finagle.html应该更好(尽管示例仍然不是很好)

看起来他们将HTTP编解码器移动到com.twitter.finagle.Http

答案 1 :(得分:0)

6.10.1-SNAPSHOT的示例代码不是最新的。可以通过引用build.sbt中的libraryDependencies来解决导入问题,该库对应于用于构建示例的Finagle版本:

libraryDependencies ++= Seq(
  "com.twitter" % "finagle-core" % "6.6.2",
  "com.twitter" % "finagle-http" % "6.6.2",
  "com.twitter" % "util-core" % "6.5.0")