【问题标题】:What going wrong in using PropertiesConfiguration?使用 PropertiesConfiguration 出了什么问题?
【发布时间】:2012-04-13 06:55:35
【问题描述】:

为了更新我的.properties 文件,我使用的是 Apache Commons Configuration 的PropertiesConfiguration。但是当我使用代码时:

try {
        PropertiesConfiguration properties = new PropertiesConfiguration("dao.properties");

    } catch (ConfigurationException ex) {

    }

我收到此错误:

incompatible types
required: java.lang.Throwable
found:    org.apache.commons.configuration.ConfigurationException

这里出了什么问题? 我是第一次使用它。

P.S.:是否有任何相对等效或更好的库可用于处理 .properties

【问题讨论】:

    标签: java properties-file apache-commons-config


    【解决方案1】:

    您正在使用不兼容的库版本。试试:

    • commons-configuration-1.7
    • commons-collections-3.2.1
    • commons-lang-2.6
    • commons-logging-1.1.1

    它对我有用。

    【讨论】:

    • 意味着我必须将collectionslanglogging 库与configuration-1.7 一起包含?
    • @Asif 是的,请参阅Runtime Dependencies
    • 对碰巧遇到同样问题的人的一个小警告:不要尝试使用 commons-lang 3.x;它与 commons-configuration 1.x 不兼容。
    • 这里的一个关键是要注意你需要commons-lang-2.6而不是commons-lang-3.1
    • 您好!我希望有些人仍然在查看此问题,因为我现在正在经历它。它适用于我的本地机器,在我的 pom.xml 中指定了所有内容,没有问题。然后,我决定在 VM 上的 intelliJ IDE 的更新版本中运行此应用程序,我现在看到此错误,它在本地工作但不能在 VM 上工作,我尝试了最新的库,但它似乎无法解决我的问题问题,任何人都可以为我提供解决方案或护理来解释为什么会发生这种情况?
    【解决方案2】:

    我遇到了同样的问题,这篇文章挽救了我的一天;想多分享一点我在这个过程中学到的东西:

    在添加 Sergio 提到的所有四个之前尝试添加 commons-lang 库。我的代码看起来与问题中引用的示例非常相似,我发现这两个库满足了所需的依赖关系。

    @Haroldo - 你在库不匹配中是正确的。首先尝试了 commons-lang 3.3,但没有成功。已验证 commons-configuration-1.9 和 commons-lang-2.6 可以很好地配合使用。

    @Asif - 您需要 Apache 库的附加功能是否有特殊原因?我发现 java.util.Properties 类适用于我的大多数应用程序,并且不需要额外的库。当然,这取决于您对返回值的处理方式。

    【讨论】:

      【解决方案3】:

      您对“dao.properties”的引用向我表明您正在将代码部署在 Web 服务环境中。在这种情况下,您需要确保 Web 服务加载的库和您引用的库完全相同(至少相同的版本),因为差异可能会导致您遇到的错误——由webservice 类加载器与应用的类加载器加载的不同,因此例外。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-19
        • 1970-01-01
        • 2011-10-30
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-08
        相关资源
        最近更新 更多