Instanz startet nicht | log4j.jar Datei in der WebLogic APP-INF/lib

Problem

Sie führen Ihre Instanzen in WebLogic aus und haben log4j.jar unter APP-INF/lib. Wenn Sie versuchen, Ihre Publishing-Instanz (oder die zweite Instanz auf dem gleichen Appserver) zu starten, erhalten Sie eine Fehlermeldung ähnlich wie:
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)

Lösung

Führen Sie einen der folgenden Schritte aus:

  • Die Datei log4j.jar nicht in den Common/Shared Classloader einfügen. Ein gemeinsames log4j für alle Webanwendungen ist nicht empfehlenswert, da diese keine eigenen Kategorien verwenden. Sie können z.B. nicht erkennen, von welcher Webapp die Logmeldung stammt.
  • Verschieben Sie die folgenden jars in den gemeinsamen Classloader:
    • crx-commons.jar
    • crx-api.jar
    • jcr.jar
    • commons-logging.jar
    • commons-collections.jar
    • xercesImpl.jar

Weitere Informationen

log4j ist global für alle Klassen im selben Classloader. Eine Klasse in der Author-Webapp registriert den FmtLogger (in crx-commons.jar) als Logger in der Kategorie'global' log4j. Dann versucht die Publish-Klasse, den gleichen Logger zu nutzen. Es gibt eine Class-Cast-Exception, da sie eine andere Version des FmtLoggers in ihrem Klassenpfad hat.

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online