> 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