2011-09-30 3 views
8

Dans mon projet, j'utilise à la fois 3.1.1 glassfish-embedded et la goyave lib ... Le problème est que glassfish vient avec l'ancienne implémentation de goyave (google-collections). Il en résulte une erreur NoSuchMethodError lors de l'exécution, par exemple lors de l'utilisation de Lists.reverse() ou de Sets.newIdentityHashSet() qui ont été introduits plus tard dans goyave.Comment faire face au conflit de classpath

Je ne trouve pas de solution pour résoudre ce ... (le seul est à la poubelle manuellement les classes com/google répertoire dans le pot GlassFish ...)

+0

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

+1

Malheureusement, pas du tout ... –

+1

Dans le cas où cela vous intéresse, j'ai trouvé une version v4 intégrée et le problème de classpath a disparu. Vous pouvez trouver la construction ici: http://grepcode.com/snapshot/maven.java.net/content/groups/promoted/org.glassfish.main.extras/glassfish-embedded-all/4.0.1-b01 – JagWire

Répondre

4

Glassfish ne devrait jamais avoir inclus des cours com.google dans leur propre pot. C'était une erreur. MISE À JOUR [@ sly7_7]: Il semble que le gobelet de verre ne renferme plus de goyave dans son propre pot, mais il dépend plutôt de l'artefact de la goyave. Cela devrait résoudre le problème. Merci à @JagWire pour l'avoir signalé.

+0

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

+0

Y at-il une solution ou une solution de contournement pour le problème à portée de main? – JagWire

6

Vous pouvez surmonter ce spécifiera la au dessous de. Lire la Delegation section of the Class Loaders chapter.

<class-loader delegate="false" /> 

Cochez cette SO Poste pour le chargement des classes dans les applications Java EE en général: Java EE class loading standard

+0

Nous l'essayons, mais cela ne fonctionne pas dans notre cas ... Cela se traduit par ClassCastException (probablement dû aux mêmes classes chargées par différents chargeurs de classe) –

Questions connexes