1

私はいくつかのフィナグルチュートリアルを見てきました。単純なサーバー用のこのコードを見つけましたが、動作させることができません。サーブのタイプを見つけることができるように、タイプでサービスを指定する必要がありますか?

コード:

import com.twitter.finagle.{Http, Service}
import org.jboss.netty.handler.codec.http.{HttpRequest, HttpResponse, DefaultHttpResponse}
import org.jboss.netty.handler.codec.http.HttpVersion._
import org.jboss.netty.handler.codec.http.HttpResponseStatus._
import com.twitter.util.{Future, Await}
object Server{
  def main(args: Array[String]) {
    val service = new Service[HttpRequest, HttpResponse] {
    def apply(req: HttpRequest) =
        Future.value(new DefaultHttpResponse(HTTP_1_1, OK))
    }
    val server = Http.serve(":8080", service)
    Await.ready(server)
 }
}  

エラー:

Error message:
Error:(25, 23) overloaded method value serve with alternatives:
  (addr: java.net.SocketAddress,service: com.twitter.finagle.ServiceFactory[com.twitter.finagle.http.Request,com.twitter.finagle.http.Response])com.twitter.finagle.ListeningServer <and>
  (addr: String,service: com.twitter.finagle.Service[com.twitter.finagle.http.Request,com.twitter.finagle.http.Response])com.twitter.finagle.ListeningServer <and>
  (addr: String,service: com.twitter.finagle.ServiceFactory[com.twitter.finagle.http.Request,com.twitter.finagle.http.Response])com.twitter.finagle.ListeningServer <and>
  (addr: java.net.SocketAddress,service: com.twitter.finagle.Service[com.twitter.finagle.http.Request,com.twitter.finagle.http.Response])com.twitter.finagle.ListeningServer
 cannot be applied to (String, com.twitter.finagle.Service[org.jboss.netty.handler.codec.http.HttpRequest,org.jboss.netty.handler.codec.http.HttpResponse]{def apply(req: org.jboss.netty.handler.codec.http.HttpRequest): com.twitter.util.Future[org.jboss.netty.handler.codec.http.DefaultHttpResponse]})
    val server = Http.serve(":8080", service)
                      ^

リンク: https://twitter.github.io/finagle/docs/#com.twitter.finagle.package

私のコメントに記載されている scala school コードへのリンク: https://twitter.github.io/scala_school/finagle.html#server

これが私のbuild.sbtです:

name := "finagle"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies ++=  Seq(
  "com.twitter" %% "finagle-http" % "6.31.0",
)
4

1 に答える 1

1

問題は、finagle 6.30.x で Httpx パッケージの名前が Http に戻され、元の Http (netty http タイプを含む) が削除されたことです。ctfhRequest ctfhResponse タイプでサービスを構築する必要があります

于 2016-02-07T11:49:09.850 に答える