Konflikte: Log4j SMTPAppender und mail.jar im Tomcat
Wie sich herrausstellte bietet das Verwenden der Javax Mail Library im Tomcat einiges Konfliktpotential.
Nach der Umstellung des Tomcat auf Log4j sollte nun zusätzlich auch der SMTPAppender zum Versenden verschiedener Logmeldungen genutzt werden. Als Abhängigkeiten ergaben sich dadurch die beiden JARs mail.jar
und activation.jar
, welche im Tomcat common libs Verezichnis bereitgestellt werden müssen.
Soweit so gut.
Nach dem Kopieren der beiden JARs ins Tomcat lib Verzeichnis ergab sich Folgendes beim Versenden der ersten Logmeldung via SMTPAppender folgender Fehler:
log4j:ERROR Error occured while sending e-mail notification. javax.mail.NoSuchProviderException: smtp at javax.mail.Session.getService(Session.java:794) at javax.mail.Session.getTransport(Session.java:718) at javax.mail.Session.getTransport(Session.java:661) at javax.mail.Session.getTransport(Session.java:641) at javax.mail.Session.getTransport(Session.java:696) at javax.mail.Transport.send0(Transport.java:186) at javax.mail.Transport.send(Transport.java:118) at org.apache.log4j.net.SMTPAppender.sendBuffer(SMTPAppender.java:416) ...
Die Problem war das einige der Webapps ebenfalls eine eigene Version der mail.jar
und activation.jar
Libraries mitbrachten und diese einen Konflikt mit den im Tomcat libs Verzeichnis bereitgestellten Versionen verursacht.
Nach dem Entfernen der mail.jar
und activation.jar
aus den WEB-INF/lib Verzeichnissen aller Webapps lief alles ohne Probleme. Die Webapps können für eigenen Mail-Funktionalität auf die mail.jar
und activation.jar
im Tomcat libs Verzeichnis zurückgreifen und laufen somit ohne Änderung wie vorher.