2015-12-10 1 views
0

Просматривая сеть, я могу сделать односторонний разговор, но когда получатель набрал что-то в своей консоли, он дает ошибку, как показано ниже, а также хочет чтобы узнать, как распределенная система akka работает на java, я получил некоторую помощь от [https://github.com/petabridge/akkadotnet-code-samples], но это было в .net.Как мы можем использовать двухстороннюю связь с использованием Akka-remote-access в java

, пожалуйста, помогите мне в создании системы accrebute akka, основанной на Java.

[ERROR] [12/10/2015 11:04:41.414] [default-akka.remote.default-remote-dispatcher-8] [NettyTransport(akka://default)] failed to bind to /10.208.19.135:8091, shutting down Netty transport 
[ERROR] [12/10/2015 11:04:41.443] [Application-Actor-System-akka.actor.default-dispatcher-4] [Remoting] Remoting error: [Startup failed] [ 
akka.remote.RemoteTransportException: Startup failed 
at akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:136) 
at akka.remote.Remoting.start(Remoting.scala:201) 
at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:184) 
at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:618) 
at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:615) 
at akka.actor.ActorSystemImpl._start(ActorSystem.scala:615) 
at akka.actor.ActorSystemImpl.start(ActorSystem.scala:632) 
at akka.actor.ActorSystem$.apply(ActorSystem.scala:141) 
at akka.actor.ActorSystem$.apply(ActorSystem.scala:108) 
at akka.actor.ActorSystem$.apply(ActorSystem.scala:99) 
at akka.actor.ActorSystem$.create(ActorSystem.scala:47) 
at akka.actor.ActorSystem.create(ActorSystem.scala) 
at com.wipro.hdfc.dispatch.actors.FilePicker.onReceive(FilePicker.java:12) 
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167) 
at akka.actor.Actor$class.aroundReceive(Actor.scala:465) 
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) 
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) 
at akka.actor.ActorCell.invoke(ActorCell.scala:487) 
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) 
at akka.dispatch.Mailbox.run(Mailbox.scala:220) 
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) 
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /10.208.19.135:8091 
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:393) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:389) 
at scala.util.Success$$anonfun$map$1.apply(Try.scala:206) 
at scala.util.Try$.apply(Try.scala:161) 
at scala.util.Success.map(Try.scala:206) 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) 
at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) 
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41) 
... 5 more 
Caused by: java.net.BindException: Address already in use: bind 
at sun.nio.ch.Net.bind0(Native Method) 
at sun.nio.ch.Net.bind(Unknown Source) 
at sun.nio.ch.Net.bind(Unknown Source) 
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) 
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) 
at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:372) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:296) 
at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
] 
[ERROR] [12/10/2015 11:04:41.506] [Application-Actor-System-akka.actor.default-dispatcher-4] [akka://Application-Actor-System/user/FilePicker] Failed to bind to: /10.208.19.135:8091 
org.jboss.netty.channel.ChannelException: Failed to bind to: /10.208.19.135:8091 
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:393) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:389) 
at scala.util.Success$$anonfun$map$1.apply(Try.scala:206) 
at scala.util.Try$.apply(Try.scala:161) 
at scala.util.Success.map(Try.scala:206) 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) 
at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) 
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41) 
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) 
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
Caused by: java.net.BindException: Address already in use: bind 
at sun.nio.ch.Net.bind0(Native Method) 
at sun.nio.ch.Net.bind(Unknown Source) 
at sun.nio.ch.Net.bind(Unknown Source) 
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) 
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) 
at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:372) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:296) 
at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

ответ

0

Ошибка вы приклеили означает, что вы пытаетесь связать одно приложение к сетевому порту, который уже используется, распространенная ошибка обучения Akka Remoting, чтобы попытаться запустить две системы актера на том же компьютере, используя тот же порт, который невозможен, для каждой системы требуется уникальный порт при работе на одном компьютере.

Я бы рекомендовал прочитать документы и немного поработать над некоторыми примерами проектов, которые работают, а не пытаться учиться на пробной и пробной версии.

Есть несколько примеров проектов, доступных через активатор, который охватывает Akka Remoting и кластеризацию в Java, например: http://www.typesafe.com/activator/template/akka-sample-remote-java

Вы можете найти документацию для стороны Java Акки Remoting здесь: http://doc.akka.io/docs/akka/2.4.1/java/remoting.html

+0

Привет Johan, проект akka образца работает нормально, но вы можете предложить мне, какие изменения и файлы мне нужно поставить на другой компьютер, когда я буду запускать один и тот же проект удаленно между двумя машинами. –

+0

Вам нужно будет изменить «common.conf», чтобы отобразить имя хоста/ip системы, на которой вы работаете, к которой может быть доступна другая система, а затем пути удаленного пользователя в 'remote-creation.conf' и' LookupApplication .java', чтобы указать на другую систему. – johanandren

+0

эй Йохан, это работает для меня, спасибо за ваш ответ –

Смежные вопросы