首页 文章

Akka scala反向服务器错误

提问于
浏览
-1

我有问题这是我的服务器https://github.com/vladimirkozhaev/reverse-str这是我的客户端https://github.com/vladimirkozhaev/string-reverse-client当我用sbt run命令运行服务器然后运行以下测试

包org.reversestr.client

import org.scalatest.concurrent.PatienceConfiguration.Timeout
import org.scalatest.{FunSpecLike, Matchers}
import org.scalatest.concurrent.ScalaFutures
import scala.concurrent.duration._

class RClientIntegrationSpec extends FunSpecLike with Matchers with ScalaFutures {
  val client:RClient = new RClient("127.0.0.1:2552")
  describe("reverse str Scala Client") {
    describe("set method") {
      it("should set a value") {
        whenReady(client.setStr("123"), Timeout(1 second)) {
          r => r shouldBe "321"
        }
      }
    }


  }
}

有这个奇怪的错误信息我哪里错了?

[INFO] [09/30/2017 22:34:52.985] [pool-4-thread-9] [akka.remote.Remoting]启动远程处理[ERROR] [09/30/2017 22:34:53.466] [ LocalSystem-akka.remote.default-remote-dispatcher-13] [NettyTransport(akka:// LocalSys tem)]无法绑定到/127.0.0.1:2552,关闭Netty传输[ERROR] [09/30/2017 22 :34:53.516] [pool-4-thread-9] [akka.remote.Remoting]远程处理错误:[启动失败] [akka.remote.RemoteTransportException:akka.remote启动失败.Rmoting.akka $ remote $ Remoting $ $ notifyError(Remoting.scala:146)at akka.remote.Remoting.start(Remoting.scala:212)akka.remote.RemoteAfRevProvider.init(RemoteActorRefProvider.scala:212)at akka.actor.ActorSystemImpl.liftedTree2 $ 1(ActorSystem) .scala:796)at akka.actor.ActorSystemImpl._start $ lzycompute(ActorSystem.scala:793)at akka.actor.ActorSystemImpl._start(ActorSystem.scala:793)at akka.actor.ActorSystemImpl.start(ActorSystem.scala: 809)at akka.actor.ActorSystem $ .apply(ActorSystem.scala:244)at akka.actor.ActorSystem $ .apply( ActorSystem.scala:287)atg.reversestr.client.RClient(RClient.scala:11)位于org.reversestr.client.RClientIntegrationSpec . (RClientIntegrationSpec . )的akka.actor.ActorSystem $ .apply(ActorSystem.scala:232) . scala:9)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang位于sbt的org.scalatest.tools.Framework $ ScalaTestTask.execute(Framework.scala:646)的java.lang.Class.newInstance(Class.java:442)中的.reflect.Constructor.newInstance(Constructor.java:423) . TestRunner.runTest $ 1(TestFramework.scala:76)at sbt.TestRunner.run(TestFramework.scala:85)at sbt.TestFramework $$ anon $ 2 $$ anonfun $$ init $$ 1 $$ anonfun $ apply $ 8.apply(TestFramework .scala:202)at sbt.TestFramework $$ anon $ 2 $$ anonfun $$ init $$ 1 $$ anonfun $ apply $ 8.apply(TestFramework.scala:202)at sbt.TestFramework $ .sbt $ TestFramewo rk $$ withContextLoader(TestFramework.scala:185)at sbt.TestFramework $$ anon $ 2 $$ anonfun $$ init $$ 1.apply(TestFramework.scala:202)at sbt.TestFramework $$ anon $ 2 $$ anonfun $$ init $$ 1.apply(TestFramework.scala:202)at sbt.TestFunction.apply(TestFramework.scala:207)at sbt.Tests $$ anonfun $ 9.apply(Tests.scala:216)at sbt.Tests $$ anonfun $ 9 . 申请(Tests.scala:216)at sbt.std.Transform $$ anon $ 3 $$ anonfun $ apply $ 2.apply(System.scala:44)at sbt.std.Transform $$ anon $ 3 $$ anonfun $ apply $ 2 . 申请(System.scala:44)at sbt.std.Transform $$ anon $ 4.work(System.scala:63)at sbt.Execute $$ anonfun $ submit $ 1 $$ anonfun $ apply $ 1.apply(Execute.scala: 226)在sbt.Execute $$ anonfun $ submit $ 1 $$ anonfun $ apply $ 1.apply(Execute.scala:226)at sbt.ErrorHandling $ .wideConvert(ErrorHandling.scala:17)at sbt.Execute.work(Execute . scala:235)at sbt.Execute $$ anonfun $ submit $ 1.apply(Execute.scala:226)at sbt.Execute $$ anonfun $ submit $ 1.apply(Execute.scala:226)at sbt.ConcurrentRestrictions $$ anon $ 4在sbt.Comp上的$$ anonfun $ 1.apply(ConcurrentRestrictions.scala:159) letionService $$ anon $ 2.call(CompletionService.scala:28)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java) :617)at java.lang.Thread.run(Thread.java:745)引起:org.jboss.netty.channel.ChannelException:无法绑定到org.jboss.netty.bootstrap的:/127.0.0.1:2552 .ServerBootstrap.bind(ServerBootstrap.java:272)at akka.remote.transport.netty.NettyTransport $$ anonfun $ listen $ 1.apply(NettyTransport.scala:417)at akka.remote.transport.netty.NettyTransport $$ anonfun $听scala.util.Success $$ anonfun $ map $ 1.apply(Try.scala:236)scala.util.Try $ .apply(Try.scala:191)在scala上听$ 1.apply(NettyTransport.scala:413) .util.Success.map(Try.scala:236)at scala.concurrent.Future $$ anonfun $ map $ 1.apply( Future.scala:235)scala.concurrent.Future $$ anonfun $ map $ 1.apply(Future.scala:235)at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)at akka.dispatch.BatchingExecutor $ AbstractBatch.processBatch(BatchingExecutor.scala:55)at akka.dispatch.BatchingExecutor $ BlockableBatch $$ anonfun $ run $ 1.apply $ mcV $ sp(BatchingExecutor.scala:91)at akka.dispatch.BatchingExecutor $ BlockableBatch $$ anonfun $运行$ 1.apply(BatchingExecutor.scala:91)at akka.dispatch.BatchingExecutor $ BlockableBatch $$ anonfun $ run $ 1.apply(BatchingExecutor.scala:91)at scala.concurrent.BlockContext $ .withBlockContext(BlockContext.scala:72) at akka.dispatch.BatchingExecutor $ BlockableBatch.run(BatchingExecutor.scala:90)at atakka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43)at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at akka .dispatch.forkjoin.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1339)at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107 )引起:java.net.BindException:已经在使用的地址:在sun.nio.ch.Net.bind(Net.java:433)sun的sun.nio.ch.Net.bind0(本地方法)绑定 . nio.ch.Net.bind(Net.java:425)位于sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)atg的sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) .gboss.netty.channel.socket.nio.NioServerBoss $ RegisterTask.run(NioServerBoss.java:193)org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:391)at org org.jboss.netty上org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)的.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:315) .util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)atg.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:42)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

1 回答

  • 0

    似乎已经有另一个应用程序在指定的端口运行:2552 . 该异常清楚地表明: java.net.BindException: Address already in use:

    快速解决方案是通过终止在该端口上运行的应用程序来清除端口 .

    要清除端口,请在shell(或终端)中执行以下命令:

    kill -9 $(lsof -t -i:2552)
    

    然后,重试运行测试 .

    命令说明:lsof -t -i:2552返回在端口2552上运行的应用程序的进程ID kill -9 process_id使用给定的进程ID杀死应用程序

相关问题