1

finagle コードで外部 (finagle サーバーへの) REST GET リクエストを作成しようとしています。URI はhttp://service.site-dev.com/subservices/listです。

https://twitter.github.io/scala_school/finagle.html#clientの例にあるクライアント コードを使用しています。

私のコード (Scala で記述) は次のようになりますが、タイムアウト制限を設定してもハングするだけです。

val client: Service[HttpRequest, HttpResponse] = ClientBuilder()
  .codec(Http())
  .hosts("http://service.site-dev.com") // If >1 host, client does simple load-balancing
  .hostConnectionLimit(1)
  .tcpConnectTimeout(1.second)
  .requestTimeout(20.seconds)
  .retries(2)
  .build()

val req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://service.site-dev.com/subservices/list")

val f = client(req) // Client, send the request

// Handle the response:
f onSuccess { res =>
  println("got response", res)
} onFailure { exc =>
  println("failed :-(", exc)
}

ホストのパラメーターが間違っていると思いますか? しかし、これが外部 REST サービスへの呼び出しである場合、そこに何を入れると思いますか?

4

2 に答える 2

3

への文字列引数hostsは URI ではなく、フォーム"host:port"(または"host1:port1,host2:port"一連のホスト) を持つ必要があるため、その行を に変更する.hosts("service.site-dev.com:80")と問題が解決するはずです。

FinagleNumberFormatExceptionのどのバージョンを使用していますか?

于 2014-11-01T15:36:07.900 に答える
0

これを確認して ください https://github.com/opower/finagle-resteasy

これは、Resteasy のクライアント エグゼキュータのドロップイン Finagle ベースの代替品です。

于 2014-12-07T21:54:12.143 に答える