Верблюд-акка и ответ от актера
Уважаемые Акка /Camel Masters!
У меня есть следующий маршрут:
(netty4: tcp) -> (акка: актер)
Я использую модуль Акка-верблюд, где:
akka: actor имеет тип UntypedConsumerActor netty4:tcp является конечной точкой, определенной в методе getEndopointUri akka: actor
netty4:tcp://localhost:8000?textline=true
Когда я посылаю байты в сокет tcp, я получаю исключение, которое сообщает, что канал сокета закрыт:
Caused by: java.nio.channels.ClosedChannelException: null
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source) [netty-all-4.1.4.Final.jar:4.1.4.Final]
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[akka://FileDaemonS] [akka://FileDaemonS] [tcp://localhost:8000 ] [ 60061]
[akka://FileDaemonS] [to1 ] [akka://FileDaemonSystem/user/FileDaemonTcpEndpoint?autoAck=false&replyTimeout=] [ 60037]
java.util.concurrent.TimeoutException: Failed to get response from the actor [ActorEndpointPath(akka://FileDaemonSystem/user/FileDaemonTcpEndpoint)] within timeout [1 minute]. Check replyTimeout and blocking settings [Endpoint[akka://FileDaemonSystem/user/FileDaemonTcpEndpoint?autoAck=false&replyTimeout=60000+milliseconds]]
at akka.camel.internal.component.ActorProducer$$anonfun$1.applyOrElse(ActorComponent.scala:151) ~[akka-camel_2.11-2.4.9.jar:na]
at akka.camel.internal.component.ActorProducer$$anonfun$1.applyOrElse(ActorComponent.scala:148) ~[akka-camel_2.11-2.4.9.jar:na]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) ~[scala-library-2.11.8.jar:na]
at scala.PartialFunction$AndThen.apply(PartialFunction.scala:186) [scala-library-2.11.8.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.11.8.jar:na]
Что я делаю неправильно?
1 ответ
Я нашел решение. Установка конечной точки netty как односторонней решает проблему.
netty4:tcp://localhost:8000?textline=true&sync=false