gpt4 book ai didi

java - AKKA .conf 文件配置到 .properties 文件

转载 作者:行者123 更新时间:2023-12-01 06:06:27 26 4
gpt4 key购买 nike

在我的 test.conf 文件中,我有以下配置

akka {
actor {
provider = "akka.cluster.ClusterActorRefProvider"

serializers {
java = "akka.serialization.JavaSerializer"
}

serialization-bindings {
"java.io.Serializable" = "kyro"
}
}
}

我试图将此配置放入 test.properties 文件中

akka.actor.provider=akka.cluster.ClusterActorRefProvider
akka.actor.serializers.java=akka.serialization.JavaSerializer
akka.actor.serialization-bindings."java.io.Serializable" = kryo

当我使用 test.conf 文件创建 AKKA ActorSystem 时,它工作正常,但是当我使用 test.propeties 文件创建 ActorSytem 时

System.setProperty("config.file", "test.properties");
Config config = ConfigFactory.load();
ActorSystem testactor = ActorSystem.create("testactor", config);

这里我得到了 java ClassNotFoundExcpetion : "java

我发现我在 test.properties 文件中放置 akka.actor.serialization-bindings."java.io.Serialized"的方式不正确。请建议将其放入 .properties 文件中的正确方法。

最佳答案

我知道您想要一个属性文件,但我认为您不能以这种方式声明 key ,并且还请记住您手中有一个强大的配置工具。

我建议将所有默认应用程序配置放入 reference.conf 中,并使用 application.conf 进行覆盖,因此您只需删除特定的应用程序即可。类路径上的conf用于在test/resources上进行测试。

这可能是您的java/resources/reference.conf:

akka {
actor {
provider = "akka.cluster.ClusterActorRefProvider"

serializers {
java = "akka.serialization.JavaSerializer"
}

serialization-bindings {
"java.io.Serializable" = "kyro"
}
}
}

然后你将其放在 test/resources/application.conf 或任何你需要测试的地方:

akka {
serialization-bindings {
"java.io.Serializable" = "java"
}
}

当您调用ConfigFactory.load()时,所有文件将合并到一个配置中。

我建议阅读有关如何配置和覆盖配置的更多信息:http://doc.akka.io/docs/akka/current/general/configuration.html#Configuring_multiple_ActorSystem

关于java - AKKA .conf 文件配置到 .properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43517113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com