That means that we must create a specific profile in Maven when we generate SMX4 as a WAR to avoid to load them twice.

On 21/10/10 14:27, Jean-Baptiste Onofré wrote:
It's linked to the JEE/WAR classloading management.

By default, Tomcat has a hierarchical classloader: Bootstrap, System, Common, One Classloader per Webapp, in this order.

As log4j is already loaded by the Bootstrap classloader, you have a "collision". A possible workaround is to remove the Karaf log4j to use the Bootstrap one.

Regards
JB

On 10/21/2010 01:50 PM, Charles Moulliard wrote:
Hi,

When Karaf is deployed as a WAR in Jetty or Tomcat, log4j classes are
loaded twice and of course Karaf is not able to report trace in
servicemix.log file.

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not
assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [4.0] whereas object of type
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by
[contextloa...@servicemix Embedded Example].
log4j:ERROR Could not instantiate appender named "A1".
log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not
assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [4.0] whereas object of type
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by
[contextloa...@servicemix Embedded Example].

Does anybody has an idea to avoid that ?

Regards,

Charles

Reply via email to