Je reçois l'erreur suivante Java.lang.NoClassDefFoundError: org/Apache/commons/collections/Transformer
En essayant d'utiliser BeanMap
de la bibliothèque Apache Commons BeanUtils.
Il est généré à partir du code suivant: BeanMap studentBeanMap = new BeanMap(cohortStudentData.get(row));
où cohortStudentData
est une liste de beans.
J'utilise BeanListHandler
d'Apache DBUtils pour former la liste des beans à partir d'une base de données.
Je comprends de this et this rapport de bogue que BeanMap
dépend du framework Apache Collections. Cependant, j'ai importé toutes les bibliothèques pertinentes dans mon projet et dans ma classe, comme vous pouvez le voir ci-dessous:
Est-ce que quelqu'un sait pourquoi cela pourrait se produire?
Je ne suis pas vraiment sûr, mais je pense que votre erreur est due aux versions de jar. Dernièrement, Apache a changé le package des nouvelles versions de leurs pots car ils implémentent de nouvelles fonctionnalités ou quelque chose qui n'est pas entièrement rétrocompatible. Par exemple, le pot commons-beanutils-1.9.2.jar dépend de commons-collections-3.2.1.jar (selon this site) et vous utilisez commons-collections-4.4.0.jar . Si vous prévoyez d'utiliser l'univers des pots Apache, vous devez vous assurer qu'ils sont tous compatibles.
Ajoutez simplement cette dépendance à votre projet.
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
commons-collections4-x.x.jar Ajoutez la bibliothèque à votre chemin de classe et essayez de relancer. Ça va marcher.
Téléchargez la bibliothèque à partir de: https://mvnrepository.com/artifact/org.Apache.commons/commons-collections4/4.1 =
L'ajout de dépendances de la version 3.2.1 semble fonctionner ici
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>