问题标签 [apache-commons-config]

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.

0 投票
2 回答
3665 浏览

java - 使用 PropertiesConfiguration 的属性文件多行值

到目前为止,我有这个项目,我在其中使用 PropertiesConfiguration(来自 Apache)读取属性文件,编辑我想要编辑的值,然后将更改保存到文件中。它保留注释和格式等,但它确实改变的一件事是采用如下格式的多行值:

并将其转换为数组样式:

我希望能够打印那些像以前一样格式化的行。
我通过这种方法做到了这一点:

0 投票
0 回答
175 浏览

java - 验证 Apache Commons 配置值

我正在使用 Apache 的commons-configuration(v 1.10) 库为我的程序提供配置值。我使用 aCompositeConfigurationSystemConfigurationaPropertiesConfiguration以允许用户使用 java 的-D命令行参数覆盖属性文件。

我遇到的问题是验证配置中的值(x例如,确保值为正)。据我所知,该commons-configuration库(无论是 1.10 还是 2.0-beta)都没有提供任何验证配置值的方法。是的,您可以验证与一起使用的 XML 文档XMLConfiguration(如果我尝试在 Google 上搜索这个问题的答案,这就是我所听到的全部内容)。SystemConfiguration但这对我的配置类部分的任何值都没有帮助。

那么,我错过了什么吗?该库是否提供了一种验证我缺少的值的方法,或者是否有一个基于 commons-configuration 构建的提供验证功能的 java 库?或者我需要将它构建到我的衍生产品中CompositeConfiguration吗?

0 投票
1 回答
1905 浏览

java - 如何使用 Apache 公共配置获取属性文件中的条目列表?

在我的项目中,我们有一个属性文件,其中包含如下条目:

实际上它不是键值对,而是键列表。使用java.util.Properties我能够使用Properties.stringPropertyNames().

现在我们正在迁移到 Apache Commons Configuration,我在这个库中找不到任何功能来获取所有这些密钥,就像我以前使用java.util.Properties.

apache commons config中是否有任何方法可以在不更改属性文件结构的情况下获取所有这些键?

编辑:我尝试Configuration.getKeys()如下使用,但输出为空。

0 投票
2 回答
1037 浏览

java - Apache Commons 配置 containsKey 在现有密钥上返回 false

抱歉,如果记录在案,但我无法在官方文档中找到它。

XMLConfiguration用来加载这个文件,但config.containsKey ("aliases")返回 false 并config.containsKey ("aliases.alias")返回 true。我是被迫检查“aliases.alias”还是有办法确定“别名”是否作为节点存在?

0 投票
1 回答
829 浏览

java - 带有 RabbitMq 和 Apache Commons Config 的 Spring:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException

我只是想自动连接以下 rabbitmq 消费者:

上面的类在服务实现类中自动装配:

我已经设置了一个 testApplicationContext 来包含所需的 bean

当我运行测试时,我得到以下堆栈跟踪:

这是我在 Tomcat 7 中运行应用程序时得到的相同堆栈跟踪。如果我需要提供任何其他详细信息,请告诉我。

编辑---我相信问题可能与 RabbitMq 启动消费者的方式有关......它坐在那里等待消息。也许 Spring 不能自动装配这个类?

编辑2---删除配置自动装配并在SmsQueueConsumer中为rabbitMqHost添加硬编码设置有效......现在为什么从配置中提取的值不起作用?

0 投票
0 回答
445 浏览

java - 如何使用 apache commons 中的 DatabaseConfiguration 和属性文件来配置数据源名称

我正在使用 apache commons DatabaseConfiguration 将我们的配置属性从属性文件移动到数据库。工作正常。但是,它显然需要数据库定义,我想使用本身就是属性的 jndi 数据源名称来加载它。因此,我想保留一个包含该属性和一两个其他属性的属性文件,该文件将首先加载并被数据库配置使用。

我已经尝试了大约一百万种排列,但我似乎无法让它发挥作用。如果我在 spring 配置中硬编码 jndi 名称,它可以工作,但是无论我是否将两者都包含在同一个属性配置器或单独的属性配置器中,无论我是否使用 order 属性......似乎没有任何工作。

这是我的一次迭代失败:

dbConfigFactory 有包含数据库配置 bean 的工厂。有谁知道如何做到这一点?

0 投票
2 回答
213 浏览

java - 使用 apache.commons.configuration.tree.ConfigurationNode.getValue() 在标签值中包含“,”时未获取整个标签值

我正在尝试使用 Apache commons 配置读取 xml

这是我的示例 xml 文件

这是我的java代码:

输出是:

实际上它正在工作。问题是当它有“,”时,它不会给出其他值。我需要整个值。任何人都可以给出想法。我的预期输出是:

我真的很感激

谢谢

0 投票
1 回答
1830 浏览

java - Netflix archaius 无法读取更新的属性文件值

我是 Netflix archaius 的新手。我有一个代码片段,它读取 Java 属性文件并打印属性值。

当这个程序运行时,它会从 testproperty.properties 文件中打印名为“Fields”的属性的值。现在,当这个程序运行时,我正在更新“字段”属性的值,所以 archaius 应该动态地获取更改值。但它仍在打印旧值。

在这个 Java 程序中使用 archaius 的正确方法是什么?或者在不重新启动程序的情况下更新程序中的属性?如果有人可以在此代码段中指出更正,那将很有帮助。

我想用 Netflix archaius 运行一个演示,所以我在我的项目中通过 maven 导入了 archaius。

现在我正在更新我的属性文件。但它仍然打印旧的属性值。(PS:我在驱动程序中保持了连续的while循环,以查看archaius是否选择了更新属性值运行时。我想这就是archaius应该做的。在不重新启动应用程序的情况下获取更新的属性。如果我错了,请纠正我。)

下面是我的代码片段:

我的“TestProperty.properties”文件只有一个名为字段的属性。运行程序后,我正在更新我的属性文件,但它仍然打印旧值。

0 投票
1 回答
212 浏览

apache-commons - Apache Commons:CompositeConfiguration 中的列表处理

我有两个配置文件:

我正在使用复合配置。首先添加 override.xml,然后添加 default.xml。

这告诉我我正在从 override.xml 和 default.xml 中获取值。有没有办法只从 override.xml 取回值,因为它覆盖了 default.xml 值?

同时,如果我要执行 getList("numbers.number"),我希望返回 100,200。一个 getList("alphabets.alphabet") 返回 A,B。

0 投票
1 回答
1404 浏览

java - Apache Commons 配置验证属性文件

我正在使用Apache Commons Configuration带有PropertiesConfiguration. 我的应用程序在启动后立即加载配置文件,如下所示:

我的问题是,如何验证configFile,所以我可以确定该文件中没有任何属性丢失,并且稍后在我的代码中NullPointerException尝试访问属性时我不会得到 a ,例如:

我在文档或谷歌中没有找到任何东西,只是关于 XML 验证的东西。
目标是在程序启动时向用户提供配置文件已损坏的反馈。
属性文件没有内置机制?