Author: ngallardo
Date: Mon Dec 17 11:01:09 2007
New Revision: 604967

URL: http://svn.apache.org/viewvc?rev=604967&view=rev
Log:
If we don't get a URLClassLoader immediately, check and see if there's a nested 
one that we can use.

Modified:
    
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java

Modified: 
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java?rev=604967&r1=604966&r2=604967&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
 Mon Dec 17 11:01:09 2007
@@ -206,14 +206,43 @@
                 URLClassLoader urlLoader = (URLClassLoader)classLoader;
                 url = getURLFromJAR(urlLoader, wsdlURL);
             }
+            else {
+                URLClassLoader nestedLoader = (URLClassLoader) 
getNestedClassLoader(URLClassLoader.class, classLoader);
+                if (nestedLoader != null) {
+                    url = getURLFromJAR(nestedLoader, wsdlURL);
+                }
+            }
         }
         return url;    
     }
-    private URL getURLFromJAR(URLClassLoader urlLoader, URL relativeURL) {
+    
+    private ClassLoader getNestedClassLoader(Class type, ClassLoader root) {
+        if (log.isDebugEnabled()) {
+            log.debug("Searching for nested URLClassLoader");
+        }
+        while (!(root instanceof URLClassLoader)) {
+            if (root == null) {
+                break;
+            }
+            
+            root = root.getParent();
+            if (log.isDebugEnabled() && root != null) {
+                log.debug("Checking parent ClassLoader: " + 
root.getClass().getName());
+            }
+        }
 
-       URL[] urlList = null;
+        return root;
+    }
+    
+    private URL getURLFromJAR(URLClassLoader urlLoader, URL relativeURL) {
+        URL[] urlList = null;
        ResourceFinderFactory rff 
=(ResourceFinderFactory)MetadataFactoryRegistry.getFactory(ResourceFinderFactory.class);
-       ResourceFinder cf = rff.getResourceFinder();
+        ResourceFinder cf = rff.getResourceFinder();
+        if (log.isDebugEnabled()) {
+            log.debug("ResourceFinderFactory: " + rff.getClass().getName());
+            log.debug("ResourceFinder: " + cf.getClass().getName());
+        }
+       
        urlList = cf.getURLs(urlLoader);
        if(urlList == null){
            if(log.isDebugEnabled()){



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

Reply via email to