This post is in reply to the recent post by Tony Dean in regard to DeploymentClassLoader.
Tony is correct. DeploymentClassLoader is not complete, and it has other issues: #############################################################3 1) Resources inside of jars Overriding findResource() will not work because the URL to the resource has a limitation in that it can only reference a resource nested 1 jar deep. That means a URL formatted to reference a resource within a jar within the service archive will not work. We had to override getResourceAsStream() in order to get resources out of jars correctly. 2) Unclosed file handles We consistently ran out of memory when using Axis2 and traced it back to the getBytes() method in DeploymentClassLoader. In the try/catch block of this method, the ZipInputStreams are being closed, but this happens only if the entry being searched for is actually found. A second condition in which the stream will not get closed is if an exception gets thrown here. 3) DeploymentClassLoader is too slow If your service contains many dependencies you will immediately notice how long it takes Axis2 to locate things. We even made an attempt at exploding the archive as Tony suggested. This did improve the speed of the class loading but it was still not acceptable. Serious optimization is going to be needed here. Our spring application context contains about 30 beans, most of which are DAO beans. We have around 35 dependency jars in our service archive. It takes us a whopping 10 minutes to load our application context, compared with about 30 seconds using Tomcat5's classloader. ################################################################### We found these issues while trying to get Spring's HibernateDAOSupport functionality to work. In addition to modifying Axis2's DeploymentClassLoader, we also had to make modifications to Spring because it lost focus of the Axis2 ClassLoader and instead reverted to the servlet container classloader (I realize this is something for the spring list but be warned if you try to do this). We are working on submitting a patch and are in the process of finding a resolution to the performance issue. Best regards, --Alex & Ralf [EMAIL PROTECTED] [EMAIL PROTECTED]
