Apache Commons 配置:ClassNotFoundException:org.apache.commons.beanutils.DynaBean

2023-12-30

我的 POM 包含:

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>2.3</version>
    </dependency>

两个示例代码均来自快速入门指南,读取属性文件 https://commons.apache.org/proper/commons-configuration/userguide/quick_start.html:

Configurations configs = new Configurations();
try
{
    Configuration config = configs.properties(new File("config.properties"));
    // access configuration properties
    ...
}
catch (ConfigurationException cex)
{
    // Something went wrong
}

and 属性文件,使用 PropertiesConfiguration https://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html#Properties_files:

Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
    new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
    .configure(params.properties()
        .setFileName("usergui.properties"));
try
{
    Configuration config = builder.getConfiguration();
    ...
}
catch(ConfigurationException cex)
{
    // loading of the configuration file failed
}

throwed:

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
...
at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:307)
at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:186)
at properties.PropertiesTest.testLoadAndStoreWithCommonsConfiguration(PropertiesTest.java:52)
...
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean

mvn dependency:tree showed:

...
[INFO] +- org.apache.commons:commons-configuration2:jar:2.2:compile
[INFO] |  +- org.apache.commons:commons-lang3:jar:3.6:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.2:compile
...

commons-configuration2's POM https://search.maven.org/classic/remotecontent?filepath=org/apache/commons/commons-configuration2/2.3/commons-configuration2-2.3.pom包含:

    ...
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.3</version>
        <optional>true</optional><
    /dependency>
    ...

I added 到我的 POM 并且它有效:

    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.3</version>
    </dependency>

UPDATE

最新的POMcommons-configuration2 https://github.com/apache/commons-configuration/blob/master/pom.xml(截至 21 年 10 月)声明<version>1.9.4。我没有尝试过,但它可能适用于更高版本的 Commons Configuration。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Commons 配置:ClassNotFoundException:org.apache.commons.beanutils.DynaBean 的相关文章

随机推荐