You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ba...@apache.org on 2007/04/16 18:22:42 UTC

svn commit: r529310 - /webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java

Author: barrettj
Date: Mon Apr 16 09:22:41 2007
New Revision: 529310

URL: http://svn.apache.org/viewvc?view=rev&rev=529310
Log:
AXIS2-2536
Fix contributed by Dustin Amrhein.  On *IX systems, a duplicate slash is causing the WSDL file to be treated as remote.

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?view=diff&rev=529310&r1=529309&r2=529310
==============================================================================
--- 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 Apr 16 09:22:41 2007
@@ -187,16 +187,16 @@
 
     private URL getAbsoluteURL(ClassLoader classLoader, String filePath){
     	URL url = classLoader.getResource(filePath);
-    	if(url == null) {
-    		if(log.isDebugEnabled()) {
-    			log.debug("Could not get URL from classloader. Looking in a jar.");
-    		}
-    		if(classLoader instanceof URLClassLoader){
-    			URLClassLoader urlLoader = (URLClassLoader)classLoader;
-    			url = getURLFromJAR(urlLoader, wsdlURL);
-    		}
-    	}
-    	return url;    
+        if(url == null) {
+            if(log.isDebugEnabled()) {
+                log.debug("Could not get URL from classloader. Looking in a jar.");
+            }
+            if(classLoader instanceof URLClassLoader){
+                URLClassLoader urlLoader = (URLClassLoader)classLoader;
+                url = getURLFromJAR(urlLoader, wsdlURL);
+            }
+        }
+        return url;    
     }
     private URL getURLFromJAR(URLClassLoader urlLoader, URL relativeURL) {
 
@@ -205,11 +205,10 @@
     	ResourceFinder cf = rff.getResourceFinder();
     	urlList = cf.getURLs(urlLoader);
     	if(urlList == null){
-    		if(log.isDebugEnabled()){
-    			log.debug("No URL's found in URL ClassLoader");
-    		}
-    		ExceptionFactory.makeWebServiceException(Messages.getMessage("WSDL4JWrapperErr1"));
-
+    	    if(log.isDebugEnabled()){
+    	        log.debug("No URL's found in URL ClassLoader");
+    	    }
+    	    ExceptionFactory.makeWebServiceException(Messages.getMessage("WSDL4JWrapperErr1"));
     	}
 
         for (URL url : urlList) {
@@ -229,8 +228,17 @@
                             if (name.endsWith(".wsdl")) {
                                 String relativePath = relativeURL.getPath();
                                 if (relativePath.endsWith(name)) {
+                                    String path = f.getAbsolutePath();
+                                    // This check is necessary because Unix/Linux file paths begin
+                                    // with a '/'. When adding the prefix 'jar:file:/' we may end
+                                    // up with '//' after the 'file:' part. This causes the URL 
+                                    // object to treat this like a remote resource
+                                    if(path != null && path.indexOf("/") == 0) {
+                                        path = path.substring(1, path.length());
+                                    }
+
                                     URL absoluteUrl = new URL("jar:file:/"
-                                            + f.getAbsolutePath() + "!/"
+                                            + path + "!/"
                                             + je.getName());
                                     return absoluteUrl;
                                 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org