Mystery solved. It turned out that this server had BackupExec installed. BackupExcec. That installation had done the following to the CLASSPATH environment variable:
CLASSPATH=C:\Program Files\VERITAS\Backup Exec\NT\ECM\bumodule.jar;C:\Program Files\VERITAS\Backup Exec\NT\ECM\LOG4J-CORE.JAR;C:\Program Files\VERITAS\Backup Exec\NT\ECM\LOG4J.JAR;. So, log4j was added to the application classpath and therefore collided with the exports from pax-logging. Still, Equinox seems to handle this nicely while Felix does not. /Bengt 2012/11/26 Bengt Rodehav <be...@rodehav.com> > Interestingly, if I use Equinox instead of Felix, Karaf starts with no > problems. I tried this since the error messages indicate that there seem to > be some problem between Felix classloading and the JVM default class loader > (I think). > > /Bengt > > > 2012/11/26 Bengt Rodehav <be...@rodehav.com> > >> JB and Achim, >> >> I've tried with a standard Karaf 2.3.0 - without any customizations - and >> I still get this problem. Therefore, the etc/org.ops4j.pax.logging.cfg and >> the etc/jre.properties are the ones bundled with Karaf. >> >> There seems to be no other bundle exporting log4j: >> >> karaf@root> exports | grep -i log4j >> 4 org.apache.log4j; version=1.2.15 >> 4 org.apache.log4j.spi; version=1.2.15 >> 4 org.apache.log4j.xml; version=1.2.15 >> >> Bundle #4 is the pax-logging-api bundle (version 1.7.0). >> >> I realize that there must be a problem - or at least somethning very >> unusual - with the server I'm trying to install to since it works >> everywhere else. Just can't figure out what... >> >> /Bengt >> >> >> >> 2012/11/26 Achim Nierbeck <bcanh...@googlemail.com> >> >>> Another possibility, is there another bundle installed that also exports >>> log4j classes? >>> >>> you'll be able to find such bundles with a packages:exports on the shell >>> >>> regards, Achim >>> >>> >>> 2012/11/26 Jean-Baptiste Onofré <j...@nanthrax.net> >>> >>>> Hi Bengt, >>>> >>>> it may require some tweak on the etc/jre.properties, to prevent the JVM >>>> to load some classes. >>>> >>>> Could you share your etc/org.ops4j.pax.logging.cfg file to try to >>>> reproduce the issue ? >>>> >>>> Thanks, >>>> Regards >>>> JB >>>> >>>> >>>> On 11/26/2012 09:34 AM, Bengt Rodehav wrote: >>>> >>>>> I have the strangest of problems on one of my installations. I have a >>>>> custom server based on Karaf 2.3.0. I have installed it in several >>>>> places with no problem. But, on one of our virtual servers running >>>>> Windows Server 2003 SP2, I cannot start Karaf correctly due to the >>>>> following: >>>>> >>>>> log4j:ERROR A "org.apache.log4j.TTCCLayout" object is not assignable to >>>>> a "org.apache.log4j.Layout" variable. >>>>> log4j:ERROR The class "org.apache.log4j.Layout" was loaded by >>>>> log4j:ERROR [org.apache.felix.framework.**BundleWiringImpl@73305c] >>>>> whereas >>>>> object of type >>>>> log4j:ERROR "org.apache.log4j.TTCCLayout" was loaded by >>>>> [sun.misc.Launcher$**AppClassLoader@360be0]. >>>>> log4j:ERROR A "org.apache.log4j.TTCCLayout" object is not assignable to >>>>> a "org.apache.log4j.Layout" variable. >>>>> log4j:ERROR The class "org.apache.log4j.Layout" was loaded by >>>>> log4j:ERROR [org.apache.felix.framework.**BundleWiringImpl@73305c] >>>>> whereas >>>>> object of type >>>>> log4j:ERROR "org.apache.log4j.TTCCLayout" was loaded by >>>>> [sun.misc.Launcher$**AppClassLoader@360be0]. >>>>> log4j:ERROR A "org.apache.log4j.TTCCLayout" object is not assignable to >>>>> a "org.apache.log4j.Layout" variable. >>>>> log4j:ERROR The class "org.apache.log4j.Layout" was loaded by >>>>> log4j:ERROR [org.apache.felix.framework.**BundleWiringImpl@73305c] >>>>> whereas >>>>> object of type >>>>> log4j:ERROR "org.apache.log4j.TTCCLayout" was loaded by >>>>> [sun.misc.Launcher$**AppClassLoader@360be0]. >>>>> >>>>> I then tried with a standard Karaf 2.3.0 and got the exact same error. >>>>> >>>>> The above errors only show up in the console since the logging system >>>>> cannot initialize properly. It seems like a strange classloading issue >>>>> but I fail to understand how it can happen. It looks like the JVM >>>>> itself >>>>> has loaded log4j classes making them incompatible with the "real" ones. >>>>> >>>>> Has anyone seen this before? Any clues? >>>>> >>>>> It's 32 bit Windows and I've tried with java 1.6.0_29 as well as >>>>> 1.6.0_37. >>>>> >>>>> /Bengt >>>>> >>>> >>>> -- >>>> Jean-Baptiste Onofré >>>> jbono...@apache.org >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com >>>> >>> >>> >>> >>> -- >>> >>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer >>> & Project Lead >>> OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> >>> Commiter & Project Lead >>> blog <http://notizblog.nierbeck.de/> >>> >> >> >