dirweis
I'm new here

Eigenes log4J

Hallo,

gibt es eine Version, die keine Klassen von log4J in org.slf4j (Datei fs-webrt.jar) mit liefert, da wir in unseren Modulen andere Versionen mitliefern?

Vielen Dank im Voraus!

Dirk

0 Kudos
8 Replies
feddersen
Community Manager

Hallo Dirk,

das sollte mรถglich sein, wenn du den scope der resource auf "module" setzt. Also einfach eine andere Version von log4j als Resource in der module.xml definieren.

Viele GrรผรŸe

Christoph

0 Kudos

Hallo Christoph,

   kann es dann nicht zu einem Problem kommen, wenn wir gegen Version X von slf4j kompilieren, aber das mit Version Y ausgeliefert wird?

Viele GrรผรŸe

   Elmar

0 Kudos

Hallo Elmar,

ich verstehe die Frage nicht ganz. Wenn du log4j als Resource im Modul angibst, musst du das log4j-Jar auch mit in das Modul packen. Da nimmst du die Version, die du haben willst.

Viele GrรผรŸe

Christoph

0 Kudos

Hallo Christoph,

   auf dem FS Server funktioniert das auch soweit. Wenn Du aber daraus eine WebApp machst und das auf einen Server installierst hast Du ein Versionsproblem - in dem war File befinden sich dann zwei verschiedene log4j bzw slf4j, eine davon "versteckt" in dem fs-webrt.jar, was natรผrlich zu Problemen fรผhrt. Lassen wir nun unsere slf4j jars weg, knallt es, weil in dem fs-webrt.jar die falsche Version ist.

Das Problem ist also, was am SchluรŸ รผber das war File auf dem Tomcat landet, nicht im FS Server.

Viele GrรผรŸe

   Elmar

0 Kudos

Hallo Elmar,

den dezenten Hinweis auf die fs-webrt.jar hatte ich รผbersehen.

Das mit dem Scope funktioniert natรผrlich nur bei Modulen, die auf dem FirstSpirit-Server laufen. Die Webapplikationen haben ja nur einen Classpath und zumindest bei der Verwendung des internen Jetty wird das fs-webrt-jar gewinnen. In dem Fall bleibt euch nur kompatibel zur mitgelieferten Log4J  bzw. slf4j Implementierung zu bleiben. Auf das fs-webrt.jar werdet ihr ja wahrscheinlich nicht verzichten kรถnnen.

Viele GrรผรŸe

Christoph

0 Kudos

Hallo Christoph,

das ist wahr, auf das mitgelieferte fs-webrt.jar kรถnnen wir nicht einfach verzichten. Gibt es eine Liste von Klassen bzw. deren Versionen, die in diesem jar mit geliefert werden?

Vielen Dank im Voraus!

Dirk

0 Kudos

Wรผrde mich ebenfalls interessieren, Danke.

GruรŸ

David

0 Kudos

Hallo zusammen,

Abhilfe kรถnnte das Shade-Plugin von Maven liefern. Damit ist es mรถglich Klassen zu "relocaten", d.h. ihren Klassenpfad zu รคndern. Z.B. von "com.foo.bar" auf "com.shaded.foo.bar". Somit kรถnnen Classloading-Konflikte, wie der oben beschriebene, vermieden werden.

https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html

Eine Auflistung von allen Klassen inkl. Version die in den einzelnen FS-Jars enthalten sind gibt es meines Wissens nach nicht. Fรผr dieses "Feature" gibt es allerdings schon einen Feature-Request, fรผr den gerne gevoted werden darf Smiley Wink:

https://community.e-spirit.com/ideas/1575

GrรผรŸe

Sandro

0 Kudos

Type a product name