Unfortunatly

> super(this.getClass().getClassLoader());

doesn't work cause It seems I cannot call getClass() before the super
constructor returns :-/

Vincent

> -----Original Message-----
> From: Berin Loritsch [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 13, 2002 9:33 AM
> To: Avalon Developers List
> Subject: Re: ExclaliburComponentManager
>
>
> Vincent Tencé wrote:
>
>
> <snip/>
>
>
> > So far I am very happy with the results! It's a way to
> enforce usage of best
> > practises and patterns
> > in our work and we can leverage the work that has been put
> into Avalon. Thx
> > for that.
> > We are learning a lot from the code we use and we can feel
> the benefits of
> > using patterns like IoC and SoC.
>
> Glad to hear it.
>
> >
> > Now the problem :-) and the question. Somehow with Tomcat
> (maybe only 3.2.3)
> > the context class loader
> > cannot find my classes so we have to use
> getClass().getClassLoader(). It's
> > an issue since in a lot
> > of the excalibur code the context class loader is used by default.
>
> This has to do with actually setting the ContextClassloader.
> Cocoon handles this
> in the Servlet's service() method by explicitly calling
>
> Thread.currentThread().setContextClassLoader(this.classloader);
>
> with every request (handles new threads that are introduced.
>
>
>
> > I guess there are workarounds, and we had to think of one for
> > ExcaliburComponentSelector. We want
> > to use a selector in our roles.xml file but
> ExcaliburComponentSelector
> > cannot find any classes of the
> > webapp.
> > So we overrided ExcaliburComponentManager like this (not
> very clean) and
> > used that class instead:
> >
> > public class DefaultComponentSelector extends
> ExcaliburComponentSelector {
> >
> >     private static Class clazz;
> >
> >     static {
> >         clazz = new HackClass().getClass();
> >     }
> >
> >     public DefaultComponentSelector() {
> >         super(clazz.getClassLoader());
> >     }
> >
> >     private static class HackClass {
> >     }
> > }
>
>
> You can also do this:
>
> super(this.getClass().getClassLoader());
>
> That works as well.
>
>
>
>
> > I wanted to know I you have also experienced that problem
> when using Avalon
> > with servlet containers.
> > Is it a tomcat issue? I am not very familiar with class
> loader issues. Is
> > there a better way
> > to get the same result than the hack code above? What is
> the preferred way
> > of doing things here?
> >
> > Btw, I guess there is mistake in the paper Developping with
> Apache Avalon at
> > bottom of page 39 (pdf format).
> > There is an example of an xml configuration file and it
> says that when you
> > have multiple instances
> > of a component you specify the instance name with the
> "hint" keyword but the
> > code is expecting "name" instead.
> >
> > Thanks for your answers,
> > Vincent
> >
> > Hope everybody will understand my English :)
>
>
> Hopefully my answers helped you :)
>
>
> --
>
> "They that give up essential liberty to obtain a little
> temporary safety
>   deserve neither liberty nor safety."
>                  - Benjamin Franklin
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



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

Reply via email to