java.lang.NoClassDefFoundError:org / apache / commons / collections / Transformer

问题描述 投票:3回答:4

我收到以下错误java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer试图使用Apache Commons BeanUtils库中的BeanMap

它由以下代码生成:BeanMap studentBeanMap = new BeanMap(cohortStudentData.get(row));,其中cohortStudentData是bean列表。

我正在使用Apache DBUtils中的BeanListHandler来构建数据库中的bean列表。

我从thisthis错误报告中了解到BeanMap依赖于Apache Collections框架。但是,我已将所有相关库导入到我的项目和我的课程中,如下所示:

有谁知道为什么会发生这种情况?

java runtime-error
4个回答
5
投票

我不太确定,但我认为你的错误是因为jar版本。最近,apache改变了新版本jar的包,因为它们实现了新功能或者不完全向后兼容的功能。例如,jar commons-beanutils-1.9.2.jar依赖于commons-collections-3.2.1.jar(根据this站点),你使用的是commons-collections-4.4.0.jar。如果您计划使用apache jar的世界,您需要确保它们都兼容。


5
投票

只需将此依赖项添加到项目中即可。

    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
    </dependency>

2
投票

commons-collections4-x.x.jar将库添加到类路径并尝试再次运行。它会工作。

从以下网址下载库:https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1


1
投票

添加版本3.2.1的依赖性似乎在这里工作

<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.1</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.