2013-11-25 4 views
1

Я пробую пример Akka-Remoting. Каждый раз, когда я начинаю удаленную систему актер я получаю это исключениеAkka remoting- Не назначайте запрошенный адрес

[INFO] [11/25/2013 18:50:19.811] [main] [Remoting] Starting remoting 
Exception in thread "main" org.jboss.netty.channel.ChannelException: Failed to bind to: /10.147.137.44:2555 
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:391) 
at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:388) 
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:42) 
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386) 
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: Cannot assign requested address 
at sun.nio.ch.Net.bind0(Native Method) 
at sun.nio.ch.Net.bind(Net.java:444) 
at sun.nio.ch.Net.bind(Net.java:436) 
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) 
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) 
at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:366) 
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290) 
at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:744) 

Вот мой application.conf детали

remoteCalculator{ 
    akka { 
    actor { 
    provider = "akka.remote.RemoteActorRefProvider" 
    } 
    remote { 
    transport = "akka.remote.netty.NettyRemoteTransport" 
    log-received-messages = on 
    log-sent-messages = on 
    log-remote-lifecycle-events = on 
    enabled-transports = ["akka.remote.netty.tcp"] 
    netty.tcp { 
     hostname = "10.147.137.44" 
     port = 2555 
     log-received-messages = on 
     log-sent-messages = on 
     log-remote-lifecycle-events = on 
    } 
    } 
    } 
} 

я пытался найти возможность другого приложения прослушивания порта 2555, выполнив следующая команда

sudo netstat -anp | grep 2555 

Но это ничего не дает. Пожалуйста, помогите мне выяснить причину, по которой приложение не может привязываться по настроенному адресу.

ответ

1

У меня есть основная причина проблемы. На самом деле это не вопрос конфигурации/прораммирования. Я работаю над виртуальным хостом (Ubuntu) внутри моей операционной системы Windows, и я не включил сетевой мост. Таким образом, виртуальный хост не смог идентифицировать имя hostName. После включения сетевого моста проблема была решена.

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