2010-05-12 5 views
3

Mon projet contient plusieurs artefacts déployés en tant que fichiers d'extension. Je crois comprendre que chacune des oreilles aura son propre classloader. Est-il possible de dire à weblogic d'utiliser le même classloader pour chacun de ces déployables.Partage de classloaders d'applications sur weblogic

Quels facteurs dois-je prendre en compte lorsque je fais ce changement?

Répondre

3

La raison pour laquelle chaque application (EAR) possède son propre classloader est l'isolation et l'indépendance des applications. Supposons que vous voulez un module commun disponible pour tous les fichiers EAR?

Si chaque application est d'avoir classloader commun (et bibliothèques communes partagées) il y a 3 façons de le faire:

  1. Ajouter les JARs communes au système classloader (mauvaise idée) comme indiqué ici. http://download.oracle.com/docs/cd/E11035_01/wls100/programming/classloading.html#wp1096756

  2. Créez un fichier JAR/EAR commun et déployez-le en tant que bibliothèque partagée comme décrit ici. http://download.oracle.com/docs/cd/E11035_01/wls100/programming/libraries.html#wp1071514

  3. Si les multiples applications ont des choses en commun et ne sont pas destinés à être des modules indépendants, les regrouper en un seul OREILLE

+0

Si je l'ai utilisé l'option 2, comment pourrais-je dire aux oreilles individuelles référence la bibliothèque partagée pour utiliser le classloader de la bibliothèque partagée? –

+0

Je devrais préciser que ma réponse suppose que le besoin de classloader commun est que tous les fichiers EAR aient accès à une bibliothèque commune. Dans ce cas, l'option 2 signifie simplement que la bibliothèque partagée commune est disponible sur le chemin de classe de tous les fichiers EAR de référence. Avez-vous besoin d'une définition/définition différente dans votre requête pour un classloader commun? – JoseK

Questions connexes