Well, you did say that setting the context classloader did fix the
commons-logging problem. Next is a new, axis related problem. Can you
give us the stacktrace of the exception you are seeing there?

regards,

Karl

On Wed, Oct 22, 2008 at 6:40 PM, Per-Erik Svensson
<[EMAIL PROTECTED]> wrote:
> Hi all,
>
> Has anyone found a solution to this problem?
>
> Regards,
> Per-Erik Svensson
>
> -----Ursprungligt meddelande-----
> Från: Per-Erik Svensson [mailto:[EMAIL PROTECTED]
> Skickat: den 17 oktober 2008 13:44
> Till: [email protected]
> Ämne: SV: commons-logging and Axis problems
>
> Very kind of you! I tried with Felix 1.2.1 but the problem remains. It is
> probably just me doing something wrong. At least that's my approach when
> using frameworks - either I make a mistake, or it all works as expected. :-)
>
> Regards,
> Per-Erik
>
> -----Ursprungligt meddelande-----
> Från: Karl Pauls [mailto:[EMAIL PROTECTED]
> Skickat: den 17 oktober 2008 12:19
> Till: [email protected]
> Ämne: Re: commons-logging and Axis problems
>
> Great, thanks. I can take a look into it during the weekend (no time
> today). However, do me a favour and try running your example with
> Felix 1.2.1 (or better, the current trunk - but that would need more
> work because we have some api changes for embedding). We did fix some
> bugs in this area since 1.0.4.
>
> regards,
>
> Karl
>
> On Fri, Oct 17, 2008 at 12:14 PM, Per-Erik Svensson
> <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> I've put a .zip together and made it available at
>> http://www.2conciliate.se/tmp/Felix.zip. (I wasn't sure if the mailing
> list
>> permits attachments.)
>>
>> To answer your question I'm using Felix version 1.0.4.
>>
>> License note: All non-Apache licensed code is proprietary and must not be
>> redistributed (or else my boss will eat my non-existent cat).
>>
>> Regards
>> Per-Erik
>>
>> -----Ursprungligt meddelande-----
>> Från: Karl Pauls [mailto:[EMAIL PROTECTED]
>> Skickat: den 17 oktober 2008 10:46
>> Till: [email protected]
>> Ämne: Re: commons-logging and Axis problems
>>
>> can you make your bundle and test case available to us? Furthermore,
>> which version of Felix are you using?
>>
>> regards,
>>
>> Karl
>>
>> On Fri, Oct 17, 2008 at 10:35 AM, Per-Erik Svensson
>> <[EMAIL PROTECTED]> wrote:
>>> Hi and thanks for the respons,
>>>
>>> Well, your first solution seems to help with the immediate exception but
> I
>>> do however get other exceptions down the Axis chain (not connected with
>>> logging though). The new exceptions have to do with different class
>> loaders
>>> loading the interface org.apache.axis.attachments and the implementing
>> class
>>> org.apache.axis.attachments.AttachmentsImpl (bootloader and felix
>>> classloader respectively).
>>>
>>> Your second solution makes no difference.
>>>
>>> I've also tried to use a bundleized version of commons-logging (from
>>> Knopflerfish) and this gives almost the same result as your first
> solution
>>> although instead of a ClassCastException on AttechmentsImpl and
>> Attachments,
>>> I now get it on org.apache.axis.transport.http.HTTPSender (felix loader)
>> and
>>> org.apache.axis.Handler (bootloader). I feel this is strange since I'm
> not
>>> doing anything at all with the class loaders and yet the interfaces are
>>> visible inside my bundle.
>>>
>>> Some new info also:
>>>
>>> 1. I've broken out all interesting parts into a new project to make it
>>> easier to "debug". In this new project everything works just fine. I then
>>> tried to include axis into the host ("main app", host of Felix)
> classpath,
>>> together with all the libs that axis depend upon (wsdl, jaxrpc and so
> on).
>>> Now, I get the HTTPSender--Handler ClassCastException.
>>>
>>> 2. I am using FileInstall to install and start new bundles. So, the host
>> of
>>> felix starts FileInstall by adding it to the list of host activators that
>> is
>>> sent to Felix' ctor. I do not think that this has any impact but I am not
>>> that good on class loading so I'm just putting it out there in case I've
>>> misunderstood something. All other bundles are thus started with the help
>> of
>>> FileInstall. As a further side note, FileInstall is included into the
> host
>>> class path (as a library) and started with
>>>
>>> FileInstall fi = new FileInstall();
>>> List list = new ArrayList();
>>> AutoActivator auto = new AutoActivator();
>>>
>>> list.add(auto);
>>> list.add(fi);
>>>
>>> felix = new Felix(configProps, list);
>>> felix.start();
>>>
>>> Can this be the source of felix classpath pollution? That I'm starting a
>>> bundle (FileInstall) that is a library of the host? FileInstall (as a
>> class)
>>> is definitely loaded by a host classloader.  If so, how am I supposed to
>>> create host activators? I feel lost... :-)
>>>
>>> Thanks again for the replies!
>>>
>>> Regards
>>> Per-Erik
>>>
>>> -----Ursprungligt meddelande-----
>>> Från: Karl Pauls [mailto:[EMAIL PROTECTED]
>>> Skickat: den 16 oktober 2008 10:39
>>> Till: [email protected]
>>> Ämne: Re: commons-logging and Axis problems
>>>
>>> try setting the context classloader to the classloader of your bundle
>>> before you make calls that use axis.
>>>
>>> ClassLoader tccl = Thread.currentThread().getContextClassLoader();
>>> try
>>> {
>>>
>>>
>>
> Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader(
>>> ));
>>>    // do stuff
>>> }
>>> finally
>>> {
>>>    Thread.currentThread().setContextClassLoader(tccl);
>>> }
>>>
>>> Alternatively, try to set the context classloader to null before you
>>> create and start felix.
>>>
>>> Let us know whether that helps.
>>>
>>> regards,
>>>
>>> Karl
>>>
>>> On Thu, Oct 16, 2008 at 1:53 AM, Per-Erik Svensson
>>> <[EMAIL PROTECTED]> wrote:
>>>> Hi,
>>>>
>>>>
>>>>
>>>> I am using Felix (embedded-style) to create a small plug-in system to
> our
>>>> application. I have built a bundle using Apache Axis to connect to a
>>>> webservice. The bundle registers with the main application (which of
>>> course
>>>> has started up Felix) and upon request from the main app calls the
>>>> webservice and returns the results to the main app. (Basically.) The
>>>> manifest of the bundle looks like this:
>>>>
>>>>
>>>>
>>>> Bundle-Name: A name
>>>>
>>>> Bundle-Description: A description
>>>>
>>>> Bundle-Vendor: 2c8
>>>>
>>>> Bundle-Version: 1.0.0
>>>>
>>>> Bundle-Activator: se.xxx.model.DocumentServiceImpl
>>>>
>>>> Import-Package: org.w3c.dom, javax.naming, javax.xml.parsers,
>> org.xml.sax,
>>>> se.conciliate.extensions.documentservice, org.osgi.framework
>>>>
>>>> Bundle-Classpath: ., jaxrpc.jar, axis.jar, commons-logging-1.0.4.jar,
>>>> commons-discovery-0.2.jar
>>>>
>>>>
>>>>
>>>> Now, when the call from the main app tracks its way down to
>>>> DocumentServiceImpl .someMethod(), an exception is thrown from Axis:
>>>>
>>>>
>>>>
>>>> java.lang.ExceptionInInitializerError
>>>>
>>>>        at org.apache.axis.client.Service.getAxisClient(Service.java:104)
>>>>
>>>>        at org.apache.axis.client.Service.<init>(Service.java:113)
>>>>
>>>> a couple of "at se.ourclasses." followed by
>>>>
>>>>
>>>>
>>>> Caused by: org.apache.commons.logging.LogConfigurationException:
>>>> org.apache.commons.logging.LogConfigurationException:
>>>> org.apache.commons.logging.LogConfigurationException: Invalid class
>> loader
>>>> hierarchy.  You have more than one version of
>>>> 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused
>> by
>>>> <same exception again*2>)
>>>>
>>>>
>>>>
>>>> This is the interesting parts of the stack trace (I think?). Apparently
>>>> commons-logging does not like to have more than one instance of
>>>> org.apache.commons.logging.Log visible on the class path. Problem is,
> I'm
>>>> not using it - Axis is. I've read about PaxLogging but I'm not sure how
>> to
>>>> make Axis use another logging facility. If anyone could help me to set
> up
>>> my
>>>> (relatively small) bundle so that it can make the webservice calls it
>>> needs
>>>> to, I'd be very grateful! Or rather, if anyone could guide me through
> how
>>> to
>>>> set up a bundle, that uses libraries, that need commons-logging.
>>>>
>>>>
>>>>
>>>> I should maybe mention also, that we use Axis for other purposes in our
>>> main
>>>> app. This must be where the other instance of
>>> org.apache.commons.logging.Log
>>>> is made visible?? (I don't export this from the system bundle however so
>> I
>>>> don't get how this can interfere. Isn't the osgi framework supposed to
>>>> guarantee that a bundle only get exposed to one instance of each class,
>> no
>>>> matter how badly I as a developer screw things up?)
>>>>
>>>>
>>>>
>>>> Since commons-logging is used by many other Apache distributions this
>> must
>>>> be a somewhat frequent problem. I have not managed to find a solution
>>> though
>>>> so I hope that this isn't already answered in a thousand other places.
>> All
>>>> I've managed to find is that commons-logging is not suited to
>> "bundleize".
>>>>
>>>>
>>>>
>>>> Please be kind if I've misunderstood something badly. I'm new to both
>>> Felix
>>>> and Axis (and don't know much about logging either). ;-)
>>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Per-Erik Svensson
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Karl Pauls
>>> [EMAIL PROTECTED]
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>>
>>
>> --
>> Karl Pauls
>> [EMAIL PROTECTED]
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
> --
> Karl Pauls
> [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Karl Pauls
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to