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/>
>>>
>>
>>
>

Reply via email to