Akka janus网关:java.lang.IllegalStateException:子流源不能被物化多次

Akka janus网关:java.lang.IllegalStateException:子流源不能被物化多次,akka,akka-http,janus,janus-gateway,Akka,Akka Http,Janus,Janus Gateway,我使用的是janus gateway,当我从浏览器点击时,它的路线运行良好 但代码正在抛出异常 这是我的密码 val responseFuture: Future[HttpResponse] = Http().singleRequest(HttpRequest(uri = "http://192.168.1.4:8088/janus/info")) responseFuture .onComplete { case Success(

我使用的是janus gateway,当我从浏览器点击时,它的路线运行良好

但代码正在抛出异常 这是我的密码

val responseFuture: Future[HttpResponse] = Http().singleRequest(HttpRequest(uri = "http://192.168.1.4:8088/janus/info"))
    
  responseFuture
      .onComplete {
        case Success(res) => println("we got http response" + res)
          log.info("get session id response " + Unmarshal(res).to[String])
          val strJson = Unmarshal(res).to[String]
        case Failure(e: Exception) => log.error("something wrong", e)
      }
  }
这是我得到的一个例外

[info] Running janusgateway.rest.GetStartedWithJanus 
18:13:21.169 734 [default-akka.actor.default-dispatcher-4] Slf4jLogger INFO - Slf4jLogger started
we got http responseHttpResponse(200 OK,List(Connection: Keep-Alive, Access-Control-Max-Age: 86400, Access-Control-Allow-Origin: *, Date: Wed, 02 Sep 2020 13:13:22 GMT),HttpEntity.Chunked(application/json),HttpProtocol(HTTP/1.1))
18:13:22.451 2016 [default-akka.actor.default-dispatcher-5] GetStartedWithJanus$ INFO - get session id response Future(<not completed>)
java.lang.IllegalStateException: Substream Source cannot be materialized more than once
    at akka.stream.impl.fusing.SubSource$$anon$13.setCB(StreamOfStreams.scala:792)
    at akka.stream.impl.fusing.SubSource$$anon$13.preStart(StreamOfStreams.scala:802)
    at akka.stream.impl.fusing.GraphInterpreter.init(GraphInterpreter.scala:306)
    at akka.stream.impl.fusing.GraphInterpreterShell.init(ActorGraphInterpreter.scala:593)
    at akka.stream.impl.fusing.ActorGraphInterpreter.tryInit(ActorGraphInterpreter.scala:701)
    at akka.stream.impl.fusing.ActorGraphInterpreter.preStart(ActorGraphInterpreter.scala:750)
    at akka.actor.Actor.aroundPreStart(Actor.scala:545)
    at akka.actor.Actor.aroundPreStart$(Actor.scala:545)
    at akka.stream.impl.fusing.ActorGraphInterpreter.aroundPreStart(ActorGraphInterpreter.scala:690)
    at akka.actor.ActorCell.create(ActorCell.scala:637)
    at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:509)
    at akka.actor.ActorCell.systemInvoke(ActorCell.scala:531)
    at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:294)
    at akka.dispatch.Mailbox.run(Mailbox.scala:229)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:242)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
[info]运行janusgateway.rest.GetStartedWithJanus
18:13:21.169 734[默认akka.actor.default-dispatcher-4]Slf4jLogger信息-Slf4jLogger已启动
我们得到了http响应HttpResponse(200 OK,列表(连接:保持活动,访问控制最大年龄:86400,访问控制允许来源:*,日期:Wed,2020年9月2日13:13:22 GMT),HttpEntity.Chunked(应用程序/json),HttpProtocol(http/1.1))
18:13:22.451 2016[默认akka.actor.default-dispatcher-5]GetStartedWithJanus$INFO-获取会话id响应Future()
java.lang.IllegalStateException:子流源不能被物化多次
在akka.stream.impl.fusing.SubSource$$anon$13.setCB(StreamOfStreams.scala:792)
在akka.stream.impl.fusing.SubSource$$anon$13.preStart(StreamOfStreams.scala:802)
在akka.stream.impl.fusing.graphinterpeter.init(graphinterpeter.scala:306)
在akka.stream.impl.fusing.graphinterperterShell.init(ActorGraphExplorer.scala:593)
在akka.stream.impl.fusing.ActorGraphTranslator.tryInit(ActorGraphTranslator.scala:701)
在akka.stream.impl.fusing.ActorGraphTranslator.preStart(ActorGraphTranslator.scala:750)
在阿卡。演员。演员。在普雷斯特(演员。斯卡拉:545)
在akka.actor.actor.aroundPreStart$(actor.scala:545)
在akka.stream.impl.fusing.ActorGraphTranslator.aroundPreStart(ActorGraphTranslator.scala:690)
在akka.actor.ActorCell.create(ActorCell.scala:637)
在akka.actor.ActorCell.invokeAll$1(ActorCell.scala:509)
位于akka.actor.ActorCell.systemInvoke(ActorCell.scala:531)
在akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:294)
在akka.dispatch.Mailbox.run(Mailbox.scala:229)
在akka.dispatch.Mailbox.exec(Mailbox.scala:242)
位于java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
位于java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
位于java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
位于java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
位于java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
我已经在我的本地机器上删除了janus,我是其中的一名初学者。上述异常似乎janus没有响应请求

Unmarshal(res)。to[String]
为您提供了一个
未来的[String]
。也许有一个限制,您只能解组一次响应?如果是这种情况,我将使用
val-strJsonFut:Future[String]=Unmarshal(res).到[String]
然后执行
strJsonFut.foreach{strJson=>log.info(s“get session ID response$strJson”);//用strJson做任何有意义的事情}
解组(res).到[String]
给你一个
未来的[String]
。也许有一个限制,您只能解组一次响应?如果是这种情况,我将使用
val-strJsonFut:Future[String]=Unmarshal(res).to[String]
然后执行
strJsonFut.foreach{strJson=>log.info(s“get session ID response$strJson”);//使用strJson做任何有意义的事情}