Comment puis-je obtenir autour de cette invalide chargeur de classe de la hiérarchie?

- Je exécuter iPlanet du serveur d'applications Java, quelque chose est en cours de chargement commons-logging-1.0.4.jar.

C'est bien jusqu'à ce que l'une de mes applications appels AuthSSLProtocolSocketFactory qui est un autre apache bibliothèque qui utilise également commons-logging.

J'ai mis le pot sur la jvm classpath et obtiens cette erreur:

Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
(Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy....

Il semble que commons-logger n'aime pas avoir deux instances de lui-même chargé dans les différents chargeurs de classes. Je suppose que le serveur d'application a son propre classloader c'est le chargement de la première fois (Bien que je ne peux pas trouver tout de configuration du serveur d'applications que le mentionne) donc quand mon application va charger un deuxième temps, il jette cette exception.

Je ne peux pas changer le serveur web, et je ne peux pas changer le apache de la bibliothèque. Des Suggestions?

OriginalL'auteur stu | 2009-05-06