问题标签 [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 投票
0 回答
69 浏览

java - 有没有办法将类路径添加到属性文件?

我正在尝试编写一个属性文件并想添加一个类路径资源。

有没有办法将类路径添加到属性文件?

例子 :

我正在使用具有以下属性的 java 属性创建 example1.properties

我有另一个属性文件说 example2.properties 具有以下值

当我存储 example1.properties 文件时,我需要包含 example2.propertis 文件。

注意:我不想包含值,而是想包含资源 example2.properties 的路径。

我需要的实际输出是:

例子1.properties

0 投票
1 回答
140 浏览

java - 将属性存储在数据库中,但在本地覆盖

目前,我们将应用程序的环境属性存储在 WEB-INF 中的 .properties 文件中。我们想将它们移动到数据库表中。但是我们仍然希望指定 jndi 名称,并且在本地测试环境中运行时,我们希望能够覆盖某些属性,仅为我们的工作区进行测试和开发。

Apache commons 的 DatabaseConfigurator 看起来不错,但是将 jndi 名称定义为文件中的属性时效果不佳。我没有做任何事情来要求它首先查看属性文件。

我决定将 apache commons 的 AbstractConfiguration 子类化,以尝试创建一个配置器来按我的意愿检查文件和数据库,但同样,它并没有真正起作用。Spring 绝对首先需要该 jndi 名称,可能是因为必须将数据源作为参数传递到配置器中。

我怎样才能在这里得到我想要的东西?大多数是数据库中的属性,但文件中的属性会覆盖它们。数据源的 jndi 名称不必在 spring 配置中硬编码。

0 投票
1 回答
878 浏览

java - 来自数据库和属性的 Spring 配置属性

我问了一个类似的问题,但根据回答,我在描述我所追求的方面做得不好。我有一个从属性文件加载属性的 spring 4 webapp。我们通过 spring 中的 "${proper.name"} 表达式以及通过将属性对象注入到我们的某些类中来使用这些属性。

我们希望将大部分属性移动到数据库表中并使其可重新加载。但是,一些需要保留在本地属性中,可能会覆盖数据库设置。这些也应该在应用程序运行后动态加载。

我知道一旦注入了特定的 bean,它就不会重新加载,这与我无关,由该模块来处理。但我无法获得我想要的行为。特别是,我已经从 apache commons 配置中实现了 AbstractConfiguration 以获得我所追求的双源和覆盖。但是,虽然它适用于注入属性对象,但用 "${prop.name}" 加载的表达式根本不起作用。

我怎样才能让他们工作?我是否覆盖了错误的东西?它只是一些配置细节吗?

0 投票
1 回答
1853 浏览

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

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

假设:键和值是字符串类型。

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

0 投票
1 回答
1874 浏览

spring - 在 Spring 中使用 Commons Configuration 2 作为 PropertySource

Commons Configuration 2.0 已经发布。在 Commons Configuration 1.0 中,有一个 Spring 模块工厂 bean (org.springmodules.commons.configuration.CommonsConfigurationFactoryBean),它允许通过 Spring 的 PropertyPlaceholderConfigurer 直接使用 Commons Configuration。由于不再维护,问题是如何使用 Commons Configuration 2.0 执行此操作。

当然,应该可以将现有的 Spring 模块源代码复制到项目中并迁移到 2.0。我知道 Spring 提供了 YAML,但它应该仍然是 Commons Configuration(现有的 XML 配置文件不应该受到影响)。

0 投票
1 回答
1803 浏览

gradle - Gradle 使用具有依赖关系的插件抛出 ClassNotFoundException

ClassNotFoundException在同一根文件夹中的项目中使用带有编译依赖项的 Gradle 插件时,我遇到了 s。

目录结构相当简单,有一个插件和将使用它的项目:

    • buildSrc
    • demo-project

build.gradle里面是这样的buildSrc

并且插件本身可以正确构建。

将插件应用到 mydemo-project时,该afterEvaluate部分失败,因为它找不到commons-configuration2依赖项(因此插件执行,而不是在有罪的行失败):

只是为了完成我的问题,这是build.gradle我的demo-project

这是一个已知问题还是我可以使用的解决方法?

可能与将依赖项添加到自定义 gradle 插件有关。

编辑:尝试指定不同的依赖项使其工作。看起来这是如何PropertiesConfiguration加载罪魁祸首类的问题。完整的堆栈跟踪是:

0 投票
1 回答
618 浏览

spring - 重新加载公共配置 2 Spring bean

在将 Configuration 对象公开为 Spring @Bean 时,我一直在使用 Commons Configuration v1 的重新加载功能而没有任何额外的编码,因为每次访问 Configuration 时都会执行重新加载检查。

我现在正在尝试迁移到 Commons Configuration v2,并且我读到重新加载仅对构建器创建的新配置对象有效。

换句话说,在 v1 中我可以做类似的事情

然后注入配置

并期望它重新加载(在需要时)

现在我应该打电话

每次我想要一个新的配置时再次。

那么我该怎么做呢?Spring中的任何东西都可以帮助我“刷新”一个已经注入许多@Controllers的@Bean吗?它不必是自动的:我可以在管理控制台中实现一个“重新加载”按钮来触发它。

0 投票
1 回答
126 浏览

hadoop-yarn - 从运行在纱线集群上的 samza 作业加载属性文件时出现问题

我有一个 samza 作业,我正在尝试使用它在纱线集群上运行

./bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file:///home/anshu/samzaJob.properties

使用此配置,作业触发并运行良好。

现在工作开始后,我有一些特定于应用程序的配置(以单独的属性文件的形式),我正在尝试使用 apache commons 配置库加载这些配置。为此,我创建了一个 appconfig 文件夹并尝试读取该文件夹中的所有文件

CONFIGURATION_FILE_PATH = System.getProperty("user.dir") + "/config/appconfig";

这在我的本地机器上工作正常,但是当它在纱线集群上运行时,这解决了

/var/lib/hadoop-yarn/data/samza-yarn/usercache/anshu/appcache/application_1462311090906_0973/container_e19_1462311090906_0973_01_000003/config/appconfig

这是不正确的。

我应该如何找到加载文件的正确路径?或者有没有其他方法可以做到这一点?

0 投票
2 回答
3055 浏览

java - 使用 apache configuration2 读取 XMLConfiguration 文件的问题

我试图使用apache commons 配置并遇到一个引发 NoClassDefFoundError 的问题。它发生在Parameters.xml()调用上。下面是我的 IntelliJ 生成的完整代码和异常详细信息。我正在使用 jdk1.8.0_91。我感谢任何帮助解决这个问题。

异常详情:

线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com .sun.proxy.$Proxy0.(Unknown Source) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl。 java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739) 在 org.apache.commons.configuration2.builder.fluent .Parameters.createParametersProxy(Parameters.java:294) 在 org.apache.commons.configuration2.builder.fluent。在 Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 TestDBA.main(TestDBA.java:16) 的 Parameters.xml(Parameters.java:232) .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144 ) 引起:java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 还有 16 个232) 在 TestDBA.main(TestDBA.java:16) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 原因:java.lang。 ClassNotFoundException: org.apache.commons.beanutils.DynaBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader。 loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 16 更多232) 在 TestDBA.main(TestDBA.java:16) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 原因:java.lang。 ClassNotFoundException: org.apache.commons.beanutils.DynaBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader。 loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 16 更多NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method. java:498) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 引起:java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean 在 java.net.URLClassLoader。 findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader .java:357) ... 还有 16 个NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method. java:498) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 引起:java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean 在 java.net.URLClassLoader。 findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader .java:357) ... 还有 16 个62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.intellij.rt.execution.application.AppMain.main(AppMain .java:144) 引起:java.lang.ClassLoader.loadClass(ClassLoader.java) 的 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 的 java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean :424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 还有 16 个62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.intellij.rt.execution.application.AppMain.main(AppMain .java:144) 引起:java.lang.ClassLoader.loadClass(ClassLoader.java) 的 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 的 java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean :424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 还有 16 个ClassNotFoundException: org.apache.commons.beanutils.DynaBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader。 loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 16 更多ClassNotFoundException: org.apache.commons.beanutils.DynaBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader。 loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 16 更多

进程以退出代码 1 结束

0 投票
0 回答
305 浏览

java - 有没有办法让 Spring 动态地重新加载引导属性?

我有一个自动配置 Netflix 的 DynamicPropertyFactory 实例的 spring-boot 应用程序。这使我们能够读取 spring 知道的任何属性以及我们指定的任何其他源。

当我们更改核心弹簧类中使用的弹簧属性时,就会出现问题。例如logging.level.org.springframework.web=INFO,在 applicationContext 设置之前、期间和之后用于核心类或 spring。如果我们在应用程序运行时更改此属性以说logging.level.org.springframework.web=TRACE...

dynamicPropertyFactory.getInstance().getStringProperty() 最终实现了改变。但是,spring 核心类继续在 INFO 中记录,而不是按预期更改为 TRACE。