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]