标签: apache-commons-config

Apache Commons Configuration2 如何从 InputStream 读取数据

如何使用 Apache Commons Configuration2 从 InputStream 读取数据?

FileBasedConfigurationBuilder<XMLConfiguration> builder = 
    new FileBasedConfigurationBuilder<XMLConfiguration>(XMLConfiguration.class)
        .configure(
            new Parameters()
            .xml()
            .setFileName("")
            .setExpressionEngine(new XPathExpressionEngine())
        );

XMLConfiguration config = builder.getConfiguration();
config.read(sourceJarFile.getInputStream(sourcePropertiesEntry))
Run Code Online (Sandbox Code Playgroud)

给出上面的代码,如果 setFileName 为空字符串,我将得到以下异常。

org.apache.commons.configuration2.ex.ConfigurationException: Could not locate: org.apache.commons.configuration2.io.FileLocator@61dc03ce[fileName=tmp.xml,basePath=<null>,sourceURL=,encoding=<null>,fileSystem=<null>,locationStrategy=<null>]
at org.apache.commons.configuration2.io.FileLocatorUtils.locateOrThrow(FileLocatorUtils.java:346)
at org.apache.commons.configuration2.io.FileHandler.load(FileHandler.java:972)
at org.apache.commons.configuration2.io.FileHandler.load(FileHandler.java:702)
at org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder.initFileHandler(FileBasedConfigurationBuilder.java:312)
at org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder.initResultInstance(FileBasedConfigurationBuilder.java:291)
at org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder.initResultInstance(FileBasedConfigurationBuilder.java:60)
at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.createResult(BasicConfigurationBuilder.java:421)
at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.getConfiguration(BasicConfigurationBuilder.java:285)
at com.test.installer.App.getXMLConfigurationProperties(App.java:185)
Run Code Online (Sandbox Code Playgroud)

如果我给 null 或只是不调用 setFileName(); 我将在 read() 行获得无法加载配置异常。

org.apache.commons.configuration2.ex.ConfigurationException: Unable to load the configuration
    at org.apache.commons.configuration2.XMLConfiguration.load(XMLConfiguration.java:986)
    at org.apache.commons.configuration2.XMLConfiguration.read(XMLConfiguration.java:954)
    at com.test.installer.App.updateExistedProperties(App.java:84)
Run Code Online (Sandbox Code Playgroud)

java apache-commons xml-configuration apache-commons-config

5
推荐指数
1
解决办法
8214
查看次数

XMLConfiguration到String

我正在使用Apache Commons配置.如何在不将其保存到文件的情况下直接获取XMLConfiguration的字符串?

非常感谢你.

java xml apache-commons-config

3
推荐指数
1
解决办法
2247
查看次数

什么是apache常见配置

有人可以对普通配置(apache常用配置)有所了解吗?如果有人可以用一些用例解释它,他会有所帮助.

此外,我可以从中获得一些有用信息的任何链接(谷歌除外)非常感谢.

apache-commons-config

3
推荐指数
1
解决办法
9360
查看次数

缺少类:org.apache.commons.lang.exception.NestableException

我正在关注一个在线示例,以从基本属性文件中读取信息.当我开始实现代码时,我不断在类的顶部收到以下错误.

The type org.apache.commons.lang.exception.NestableException cannot be resolved. It is indirectly referenced from required .class files

我试图通过从此页面下载apache commons lang包并将其包含在我的项目属性中来解决该错误,但这并没有解决问题.

有人可以请我告诉我为什么会抛出这个错误,以及如何解决它.

java apache apache-commons-config

3
推荐指数
1
解决办法
6070
查看次数

Archaius的财产变更监听者

我正在使用Archaius来保持托管我的应用程序的所有服务器之间的系统属性.我可以看到所有属性getter都可以在该属性发生变化时调用回调(例如,参见第三个参数getStringProperty()),但我想监听任何属性更改.我可以实现一些接口并在某处注册为监听器吗?

java apache-commons-config netflix-archaius

3
推荐指数
1
解决办法
1580
查看次数

属性文件更改时的 Apache Commons 配置触发事件

我正在使用 Apache Commons 配置库来存储我的应用程序属性。我可以使用它来监视属性文件的更改FileChangedReloadingStrategy,并且它工作得很好。我想做的是在属性文件更改时触发configurationChanged事件。ConfigurationListener

如果我尝试从我的代码中获取属性,则这种情况有效

directory = MyConfiguration.getInstance().getString("directory");
Run Code Online (Sandbox Code Playgroud)

这条线将触发configurationChanged。但我需要在捕获文件中的更改时触发此事件FileChangedReloadingStrategy而不进行冗余调用。

谢谢。

java apache-commons-config

2
推荐指数
1
解决办法
3720
查看次数

将org.apache.commons.configuration.Configuration转换为java.util.Properties的直接方法

我能够转换org.apache.commons.configuration.Configurationjava.util.Properties使用:

Properties props = new Properties();
Configuration config = new PropertiesConfiguration(fileName);
Iterator iter = config.getKeys();

while (iter.hasNext()) {
    String key = (String) iter.next();
    String value = config.getString(key);
    props.put(key, value);
}
Run Code Online (Sandbox Code Playgroud)

假设:键和值是String类型.

有没有直接的转换Configuration方式Properties

java properties apache-commons-config

2
推荐指数
1
解决办法
1135
查看次数