> As to why the current thead contexts class loader was not
> able to load axis
> classes in dynamo, to tell you the truth it was a bit
> suprising to me
> also, but since presumably the classes which provide the
> web service are
> deployed along with the AxisServlet class. calling new
> SomeAxisClass().getClass().getClassloader() should resonably
> be able to
> access both axis classes and web service provider classes in
> a wide variety
> opf servlet containers since they are in the same set of jar files/ear
> file/war file. is this not the case in jrun. how do calls to
> new foo()
> work if it were not the case?
Actually, the question is precisely the reverse - i.e. I should be asking you that
about Dynamo.
Here's JRun's classloader structure:
System Classloader
|
Server Classloader
/ \
Webapp1 CL Webapp2 CL
Axis gets loaded by the Server classloader, but the Webapp classloaders are the ones
who have the WEB-INF/classes dirs on the classpath. So clearly, all the classes
loaded by the Server classloader are available in all the Webapps, but NOT vice versa.
And new Axis*().getClass().getClassLoader() will return the Server classloader for us.
Sooo... your turn. :) How do you think this works in Dynamo such that the current
thread's classloader can't find the classes in WEB-INF? In other words - if a new
Axis*() works for you, one would think the current WEB-INF (since that's where your
axis.jar lives) would be somewhere in the classloader hierarchy starting at the
current thread one.... no?
--Glen