Scala Akka IO(Tcp)获取命令失败的原因
下面是Actor使用IO(Tcp)的示例 为了实验,我已经运行了两次,所以它试图绑定到803端口。显然我有个错误 问:我怎样才能知道“命令失败”的原因?在application.conf中,我启用了slf4j和调试级别的日志,然后我的日志中出现了一个错误Scala Akka IO(Tcp)获取命令失败的原因,scala,akka,Scala,Akka,下面是Actor使用IO(Tcp)的示例 为了实验,我已经运行了两次,所以它试图绑定到803端口。显然我有个错误 问:我怎样才能知道“命令失败”的原因?在application.conf中,我启用了slf4j和调试级别的日志,然后我的日志中出现了一个错误 DEBUG akka.io.TcpListener-端点上TCP通道的绑定失败[localhost/127.0.0.1:803]:java.net.BindException:已在使用的地址:Bind 但为什么这只是调试级别?我不想让所有Ac
DEBUG akka.io.TcpListener-端点上TCP通道的绑定失败[localhost/127.0.0.1:803]:java.net.BindException:已在使用的地址:Bind
但为什么这只是调试级别?我不想让所有ActorSystem都记录他们的事件,我想知道CommandFailed事件的原因(比如java.lang.Exception实例,我可以制作e.printStackTrace()
)
比如:
case c@CommandFailed=>val e:Exception=c.getReason()
也许这不是阿克卡的方式?那么如何获取诊断信息呢?我知道您有两个问题
803
),这是不可能的,除非绑定的端口解除绑定并关闭连接,以便另一个可以绑定akka.event.Logging
并将val log=Logging(context.system,this)
放在参与者的开头,这将记录参与者的所有活动,并。。。
它还显示了参与者的名称、相应的参与者系统和主机+端口(如果您使用的是akka集群)希望这对你有所帮助,以下是你能做的-找到仍然存在的PID,然后杀死它 在Mac上- lsof-i:端口号 然后 kill-9数字