Dernière mise à jour le
1 mai 2021
|
S’applique également à Communiqué 3, Communiqué 4
Problème
Vous exécutez les instances de WebLogic et vous avez log4j.jar sous APP-INF/lib. Lorsque vous essayez de démarrer votre instance de publication (ou la deuxième instance sur le même appserver), vous obtenez une erreur semblable à :
javax.servlet.ServletException at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:909) at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:873) at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:812) at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3281) at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3226) at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3207) at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5737)
Solution
Effectuez l’une des opérations suivantes :
- Désactivez le log4j.jar dans le classloader commun/partagé. Disposer d'un log4j partagé pour toutes les applications web est une mauvaise idée, car elles n'utilisent pas leurs propres catégories. Par exemple, vous ne pouvez pas déterminer de quelle application web provient le message du journal.
- Déplacez les jars suivant vers le classloader commun :
- crx-commons.jar
- crx-api.jar
- jcr.jar
- commons-logging.jar
- commons-collections.jar
- xercesImpl.jar
Informations supplémentaires
log4j est global pour l'ensemble des classes du même classloader. Une classe dans l'application web auteur enregistre le FmtLogger (dans crx-commons.jar) en tant que journal dans la catégorie log4j « global » La classe de publication tente ensuite d’acquérir le même journal. Il existe une exception de distribution de classe, car elle possède une autre version de FmtLogger dans son chemin de classe.
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?