当我给系统一个空白配置时,远程演员选择停止工作



我正在为具有要连接的远程参与者的系统使用以下配置:

akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = DEBUG
debug {
lifecycle = on
receive = on
}
actor {
provider = "akka.remote.RemoteActorRefProvider"
warn-about-java-serializer-usage = false
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "myhost"
port = 2561
maximum-frame-size = 256000b
}
}
}

然后我执行以下操作从本地系统连接到它:

val system = ActorSystem("Test")
val actor = system.actorSelection("akka.tcp://remote@myhost:2561/user/myActor")

我可以向演员发送和接收消息,没有问题。但是,如果我定义了一个空白配置:

akka-test {
} 

现在将我的系统定义为:

val system = ActorSystem("Test", config.getConfig("akka-test")

突然间,我再也无法连接到远程演员了。我得到以下错误:

路径为akka的远程参与者。tcp://remote@myhost:2561/user/myAactor是不可用

为什么空白配置会破坏我连接到远程系统的能力?

注意。我实际上并没有使用空白配置,但我最终发现是我的配置造成了问题。所以我去掉了所有的配置设置,发现问题仍然存在

我可以通过将RemoteActorRefProvider添加到我的配置中来修复它:

akka-test {
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
}
}

我现在看到这是在文档中指定的,但它在不设置任何配置的情况下工作的事实有点像曲线球

最新更新