Last active
May 10, 2017 04:26
-
-
Save tkrs/22f5f42f4cd85e8522301ea5cc54f6f4 to your computer and use it in GitHub Desktop.
Akka-Http - Outgoing request stream error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name := "akka-tut" | |
| version := "1.0" | |
| scalaVersion := "2.12.2" | |
| libraryDependencies ++= Seq( | |
| "com.typesafe.akka" %% "akka-http" % "10.0.6" | |
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.nio.charset.StandardCharsets._ | |
| import akka.{Done, NotUsed} | |
| import akka.actor.ActorSystem | |
| import akka.http.scaladsl.Http.HostConnectionPool | |
| import akka.http.scaladsl._ | |
| import akka.http.scaladsl.model.{HttpRequest, HttpResponse} | |
| import akka.stream.ActorMaterializer | |
| import akka.stream.scaladsl.{Flow, Sink, Source} | |
| import scala.concurrent.{Await, ExecutionContext, Future} | |
| import scala.concurrent.duration._ | |
| import scala.util.{Failure, Success, Try} | |
| object Main { | |
| def main(args: Array[String]): Unit = { | |
| implicit val system = ActorSystem() | |
| implicit val mat = ActorMaterializer() | |
| import system.dispatcher | |
| // import ExecutionContext.Implicits.global | |
| val google: Flow[(HttpRequest, Long), (Try[HttpResponse], Long), HostConnectionPool] = | |
| Http().cachedHostConnectionPoolHttps[Long]("www.google.com") | |
| val qs: Source[String, NotUsed] = | |
| Source(scala.collection.immutable.Iterable("foo", "bar", "hoge", "quux")) | |
| def handle(r: (Try[HttpResponse], Long)): Future[Done] = r match { | |
| case (Failure(e), u) => println(u); Future.failed(e) | |
| case (Success(v), u) => | |
| v.entity.toStrict(5.seconds) | |
| .map(a => println(s"$u: ${v.status}, ${a.contentType}")) | |
| .map(_ => Done) | |
| } | |
| val go: Source[Done, NotUsed] = | |
| qs.async | |
| .map(q => HttpRequest(uri = s"/search?q=$q")).async | |
| .zipWithIndex.async | |
| .via(google).async | |
| .mapAsync(2)(handle) | |
| val runAndDown = for { | |
| _ <- go.runWith(Sink.ignore).andThen { case t => Future.successful(println(s"Run stream: $t")) } | |
| _ <- Http().shutdownAllConnectionPools().andThen { case t => println(s"Shutdown all connections: $t") } | |
| _ <- system.terminate().andThen { case t => println(s"Terminate: $t") } | |
| } yield () | |
| println(Await.result(runAndDown, 20.seconds)) | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA 2017.1.3 CE EAP.app/Contents/lib/idea_rt.jar=62517:/Applications/IntelliJ IDEA 2017.1.3 CE EAP.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/tools.jar:/Users/satotakeru/code/github.com/DAConsortium/akka-tut/target/scala-2.12/classes:/Users/satotakeru/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.1.jar:/Users/satotakeru/.ivy2/cache/com.typesafe.akka/akka-parsing_2.12/jars/akka-parsing_2.12-10.0.3.jar:/Users/satotakeru/.ivy2/cache/com.typesafe.akka/akka-http_2.12/jars/akka-http_2.12-10.0.3.jar:/Users/satotakeru/.ivy2/cache/com.typesafe.akka/akka-http-core_2.12/jars/akka-http-core_2.12-10.0.3.jar:/Users/satotakeru/.ivy2/cache/com.typesafe/config/bundles/config-1.3.0.jar:/Users/satotakeru/.ivy2/cache/com.typesafe/ssl-config-core_2.12/bundles/ssl-config-core_2.12-0.2.1.jar:/Users/satotakeru/.ivy2/cache/com.typesafe.akka/akka-actor_2.12/jars/akka-actor_2.12-2.4.16.jar:/Users/satotakeru/.ivy2/cache/com.typesafe.akka/akka-stream_2.12/jars/akka-stream_2.12-2.4.16.jar:/Users/satotakeru/.ivy2/cache/org.reactivestreams/reactive-streams/jars/reactive-streams-1.0.0.jar:/Users/satotakeru/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.12/bundles/scala-java8-compat_2.12-0.8.0.jar:/Users/satotakeru/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.12/bundles/scala-parser-combinators_2.12-1.0.4.jar Main | |
| objc[53859]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java (0x10c2014c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10d3254e0). One of the two will be used. Which one is undefined. | |
| 2: 302 Found, text/html; charset=UTF-8 | |
| 0: 302 Found, text/html; charset=UTF-8 | |
| 3: 302 Found, text/html; charset=UTF-8 | |
| 1: 302 Found, text/html; charset=UTF-8 | |
| Run stream: Success(Done) | |
| Shutdown all connections: Success(()) | |
| [ERROR] [05/10/2017 13:23:19.230] [default-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl(default)] Outgoing request stream error (akka.stream.AbruptTerminationException) | |
| [ERROR] [05/10/2017 13:23:19.233] [default-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl(default)] Outgoing request stream error (akka.stream.AbruptTerminationException) | |
| [ERROR] [05/10/2017 13:23:19.233] [default-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl(default)] Outgoing request stream error (akka.stream.AbruptTerminationException) | |
| [ERROR] [05/10/2017 13:23:19.233] [default-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl(default)] Outgoing request stream error (akka.stream.AbruptTerminationException) | |
| Terminate: Success(Terminated(Actor[akka://default/])) | |
| () |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment