这是我关于stackoverflow的第一篇文章,英语不是我的母语,如果帖子中有错误,请道歉。
我正在尝试使用play框架运行远程actor,但我无法让它们正常工作。 它是一个简单的客户端 - 服务器系统,两个系统都在不同的项目中。
客户端控制器索引函数类似于:
val system = ActorSystem("MySystem")
val servidorRyP = system.actorSelection("akka.tcp://Servidor@127.0.0.1:5000/user/servidorRyP")
servidorRyP ! id.toString
客户端的conf文件中的和akka配置:
#akka
akka.default-dispatcher.core-pool-size-max = 64
akka.debug.receive = on
akka {
actor {
//provider = "akka.remote.RemoteActorRefProvider"
}
如果我取消注释提供者文件,它会显示并显示错误:" NoSuchMethodException:akka.remote.RemoteActorRefProvider。",所以我留下了评论。
另一方面,服务器控制器声明了actor并启动它:
val system = ActorSystem("Servidor")
val servidor = system.actorOf(Props[ServidorRyP], name = "servidorRyP")
我可以从Server应用程序向actor发送消息,但我无法从客户端访问它。
服务器配置文件上的akka配置是:
akka {
actor {
//provider = "akka.remote.RemoteActorRefProvider"
deployment {
/servidorRyP {
remote = "akka.tcp://Servidor@127.0.0.1:5000"
}
}
}
}
当我在播放时执行两个应用程序(在不同的端口),在客户端之前启动服务器,它什么都不做,我的意思是客户端似乎执行代码,但服务器没有收到任何东西。
我正在使用Play for Mac,但据我所知,没有防火墙问题。
答案 0 :(得分:0)
您是否在依赖项中添加了akka-remote
?它默认不包括在内。
添加:
"com.typesafe.akka" %% "akka-remote" % "2.2.3"
到你的构建文件。