问题标签 [hocon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 在运行时从自定义位置加载 HOCON 格式的类型安全配置
我有一个应用程序,它可以通过文件获取工作配置信息(可能有几十个文件,每个文件都描述了应用程序要完成的特定工作,最好是灵活地确定它们的位置),为此我们选择了 HOCON 格式和类型安全库。
它在从资源文件夹进行开发加载时效果很好,但目的是在运行时通过参数传递这些配置文件的路径,同时调用 spark-submit (spark-submit ... pathToFile ...)。
但是读取文件的路径失败并出现以下错误:
如何从 /resources 以外的其他位置读取配置文件?
解决方案
根据@hagarwal 提示,以下工作
apache-spark - 将 conf 文件添加到 Google Dataproc 中的类路径
我们正在使用 HOCON 配置在 Scala 中构建 Spark 应用程序,该配置名为application.conf
.
如果我将 jar 添加application.conf
到我的 jar 文件并在 Google Dataproc 上开始工作,它会正常工作:
我不想将application.conf
jar 文件与我的 jar 文件捆绑在一起,而是单独提供,我无法正常工作。
尝试了不同的东西,即
- 指定 application.conf
--jars=gs://<bucketname>/application.conf
(应该根据这个答案工作) - 使用
--files=gs://<bucketname>/application.conf
- 与 1. + 2. 相同,应用程序 conf 在
/tmp/
集群的主实例上,然后指定本地文件file:///tmp/application.conf
- 使用(和执行者)定义
extraClassPath
火花--properties=spark.driver.extraClassPath=gs://<bucketname>/application.conf
使用所有这些选项我得到一个错误,它在配置中找不到密钥:
此错误通常意味着 HOCON 配置中有错误(密钥xyz
未在 HOCON 中定义)或application.conf
不在类路径中。由于在我的 jar 文件中使用完全相同的配置,因此我认为是后者。
是否有任何其他选项可以将其application.conf
放在类路径中?
java - 将 HOCON 字符串转换为 Java 对象
我的 Web 服务之一返回以下 Java 字符串:
我有上述字符串的等效 Java 对象。我想将上面的 java 字符串类型转换或转换为 Java 对象。
我不能对它进行类型转换,因为它是一个字符串,而不是一个对象。因此,我试图将 Java 字符串转换为 JSON 字符串,然后我可以将该字符串写入 Java 对象,但没有运气出现invalid character "="
异常。
您可以更改 Web 服务以返回 JSON 吗?
那是不可能的。他们没有改变他们的合同。如果他们返回 JSON,那将非常容易。
scala - 如何在 HOCON 中合并对象和非对象值?
我在我的项目中使用 HOCON 配置。但我坚持配置 Hive 连接。
HOCON 文档说:
JSON 规范没有说明如何处理同一对象中的重复键。在 HOCON 中,后面出现的重复键会覆盖前面出现的键,除非两个值都是对象。如果两个值都是对象,则合并对象。
现在有了这两个配置,我怎样才能让这个 HOCO 都读取它们呢?
vert.x - 如何让 HOCON 配置文件格式在部署为 fat jar 的 Vert.x 中工作?
我想在部署为 fat jar 的 Vert.x 应用程序中使用HOCON格式进行配置。我面临着与这个类似问题中描述的相同的问题。
但是我应用了gradle插件“io.vertx.vertx-plugin”(v1.0.1)并成功地将线路io.vertx.config.hocon.HoconProcessor
放入 META-INF/services/io.vertx.config.spi.ConfigProcessor
jar中。
我仍然得到例外。在 jar 中正确捆绑 HoconProcessor 类还需要什么?
bash - 如何将 bash 脚本插入 Hocon 变量
我有一个 bash 脚本作为变量值的 kubernetes yaml 文件。
我想将 yaml 转换为 Hocon / Typsafe .conf 格式,这样我就可以注入变量并在它们运行时转换为 yaml。
如果可能,我如何将此值转换为 Hocon?
akka - 配置文件 Akka 集群
我正在使用 akka 集群并尝试为不同的环境设置两个不同的配置。
- 一个用于我的本地设置,我将使用种子节点来启动我的应用程序
- 两个用于我的生产 Kubernetes 设置。
我尝试了来自 Akka 的 Config Docs,其中提到了 conf 文件中的-Dconfig.resource=/dev.conf
and include application
,但它仍然不断要求akka.discovery.method
inapplication.conf
下面是我的两个配置文件:
应用程序.conf
应用程序-seed.conf
当我使用参数运行代码时:
-D config.resource=/application-seed.conf
它向我抛出了错误:
中未配置默认服务发现实现
akka.discovery.method
。确保将此设置配置为您的首选实现,例如 application.conf 中的“akka-dns”(来自 akka-discovery 模块)。
以前有人做过这种设置吗?
python - 如何在 Python 3 中使用 pyhocon 动态生成 Hocon conf 文件?
我想使用自动化来使用 python 3 脚本创建 hocon 配置。我读到 lightbend ( https://github.com/lightbend/config ) 推荐 pyhocon ( https://github.com/chimpler/pyhocon )。
我在弄清楚如何创建 Hocon 对象并将数据作为 hocon 写入文件时遇到问题。对我来说,替换的语法在结果中很重要。
例如,我希望文件 myconfig.conf 的输出看起来像这样:
所以,我认为有一种方法可以做这样的事情:
然后在创建填充对象之后,应该有一种简单的方法来写出一个或多个文件:
有没有人想出办法做到这一点?该库只能用于读取数据,这似乎很奇怪。
corda - 如何将新节点添加到现有的 Corda 网络?
我有一个用例,我需要向现有的 Corda 网络添加一个新节点(假设在现有的 Corda 网络中,当前正在运行 2 个节点(A,B 节点),现在需要将节点 C 添加到该网络。
我也浏览了以下链接,但没有运气:
将新节点添加到现有的 Corda 网络
找不到网络参数文件和兼容区域未配置/无法访问
在 CORDA 中动态部署和运行节点
我尝试了以下方法:我在 build.gradle 中的 deployNodes任务
中添加了 A 和 B 节点配置,然后运行 deployNodes 任务,以便 A 和 B 节点成功启动现在我创建新文件夹 PartyC 并在其中添加了corda.jar和节点。 conf节点 C 然后运行命令:
但运行此命令时出现以下异常:
java -jar corda.jar
新节点(节点 C)的 node.conf 文件如下:
我无法了解我应该如何在此 node.conf 文件中添加网络参数或兼容区域。
scala - 在类型安全配置中使用 withFallBack 合并配置中的数组值
我有一些数据可用作 HOCON 格式的类型安全配置文件。
有一个像这样的基本文件:
可能有一个文件可用于进行一些更改,例如在测试期间,如下所示:
我正在尝试使用合并这两个文件
fileConfig.withFallback(baseFileConfig)
最终结果是:
即,来自 fallBack 配置的“k1”的数组值将被忽略。有没有办法可以在合并后从两个文件中获取连接数组?