9
votes

Comment faire face au conflit de classePath

Dans mon projet, j'utilise à la fois des poissons-poissons-poissons-poissons-poissons-poissons 3.1.1 et la Guava Lib ... Le problème est que Glassfish est livré avec l'ancienne mise en œuvre de Guava (c.-à-d. Google-collections) ...

Il en résulte Nosuchmethoderror au moment de l'exécution, par exemple lors de l'utilisation de la liste.Reverse () ou de SETS.NewididididididididididididididididShasHashSet () qui ont été introduits plus tard à Guava.

Je ne trouve aucune solution pour résoudre ce problème ... (le seul est de corbeille manuellement le répertoire COM / Google Classes dans le pot de gluge ...)


5 commentaires

Avez-vous déjà trouvé une solution de contournement?


Malheureusement, pas du tout ...


Si vous vous souciez, j'ai trouvé une construction V4 intégrée et le problème de classe de classe s'est éloigné. Vous pouvez trouver la construction ici: grepcode.com/snapshot/maven.java.net/content/groups/promote / ...


@Jagwire Je ne travaille plus avec Glassfish, mais c'est une très bonne chose de savoir qu'ils ont réparer cela. Je vais mettre à jour les anwser de Kevin avec votre lien. Merci beaucoup pour ça :)


J'ai un problème similaire, pas avec des poissons de verre, mais avec une autre bibliothèque de jar de mes Poms. Malheureusement, j'ai beaucoup de bibliothèques dans mes pompons. Quelqu'un peut-il me dire comment suivre quel pot provoque un conflit? Je n'ai aucune idée de la façon de le faire. Tout ce que je sais, c'est que mon code se bloque lorsque j'essaie de modifier ma guava dans mes Poms à plus haut que 19.0 - et je souhaite utiliser des fonctionnalités de 21 dans mon projet! Mais ne peut pas aussi longtemps que ce problème persiste ...


3 Réponses :


7
votes

Vous pouvez surmonter cela spécifiant ci-dessous. Lire le Section de la délégation du chapitre de la classe Chargeurs.

<class-loader delegate="false" />


1 commentaires

Nous essayons, mais cela ne fonctionne pas dans notre cas ... Cela se traduit par CLASSCASTEXCEPTION (probablement due aux mêmes classes chargées de différents chargeurs de classes)



4
votes

Glassfish ne devrait jamais avoir inclus les cours Com.google dans leur propre pot. C'était une erreur.

Mise à jour [@ Sly7_7]: Il semble que la glassfish ne comprend plus Guava dans leur propre pot, mais cela dépend de l'artefact de goyave. Cela devrait résoudre le problème. Merci à @jagwire de pointer cela.


1 commentaires

C'est ce que je pense ... et c'est la même chose pour slf4j :(



0
votes

J'ai pu faire disparaître l'erreur en utilisant la version de poisson-verre suivant V4 Build:

http://grepcode.com/snapshot/maven.java.net/content/groups/promoted/org.glassfish.main.extras/glassfish-eudded-all/4.0.1-b01

pourrait être utile de jeter un coup d'oeil.


0 commentaires