Un classloader commun pour plusieurs WAR
Ceci est un petit rappel pour les retardataires qui souhaitent utiliser un classloader commun pour plusieurs webapp[1].
Tout d’abord, il faut savoir que la gestion du classloader dépend énormément du serveur d’applications. Par exemple, JBoss possède un seul et unique classloader utilise une hiérarchie de classloaders, mais par défaut c’est un référentiel de classes commun[2][3] pour tout le serveur qui est utilisé. Alors que JOnAS utilise une hiérarchie[4] de classloaders (serveur, application d’entreprise, application web, …).
Donc, en fonction du serveur d’application utilisé, cette question ne se pose pas toujours. Néanmoins, si vous recontrez ce problème, il est possible de définir des EAR. Et donc d’avoir accès au classloader commun pour plusieurs WAR.
3 juillet 2006 à 10:12
Petite correction: JBoss utilise une hierarchie de classloaders qui soit ont un repository de class commun (aka unified class loader) ou un repository de class indépendant (JavaEE classique)
3 juillet 2006 à 12:21
Emmanuel,
Merci pour tes remarques. Je viens de corriger le billet en y intégrant tes précisions sur la gestion du classloader par JBoss. J’avais pris un raccourci maladroit. :-/