2013-11-25 44 views
1

我想尝试一个Akka-Remoting的例子。每次我开始我的远程演员系统我得到这个异常Akka远程处理 - 无法分配请求的地址

[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

我得到了问题的根源。其实这不是一个配置/ proramming问题。我正在使用我的窗口操作系统内的虚拟主机(Ubuntu),但我没有启用网络桥接器。因此,虚拟主机无法识别主机名。启用网桥后,问题得到解决。

相关问题