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 di...@apache.org on 2008/02/07 17:12:18 UTC

svn commit: r619477 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java POJODeployer.java util/Utils.java

Author: dims
Date: Thu Feb  7 08:12:12 2008
New Revision: 619477

URL: http://svn.apache.org/viewvc?rev=619477&view=rev
Log:
allow jaxws to look in more locations (WEB-INF and the webapp root) for the wsdl/xsd's specified using wsdlLocation

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=619477&r1=619476&r2=619477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Thu Feb  7 08:12:12 2008
@@ -756,7 +756,7 @@
         }
     }
 
-    public String getWebLocationString() {
+    public static String getWebLocationString() {
         return webLocationString;
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java?rev=619477&r1=619476&r2=619477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java Thu Feb  7 08:12:12 2008
@@ -31,6 +31,7 @@
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.axis2.Constants;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.classloader.MultiParentClassLoader;
 import org.apache.axis2.i18n.Messages;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -65,9 +66,8 @@
     }//Will process the file and add that to axisConfig
 
     public void deploy(DeploymentFileData deploymentFileData) {
-        ClassLoader threadClassLoader = null;
+        ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader();
         try {
-            threadClassLoader = Thread.currentThread().getContextClassLoader();
             String extension = DeploymentFileData.getFileExtension(deploymentFileData.getName());
             if ("class".equals(extension)) {
                 File file = deploymentFileData.getFile();
@@ -155,8 +155,15 @@
                 ArrayList axisServiceList = new ArrayList();
                 for (int i = 0; i < classList.size(); i++) {
                     String className = (String) classList.get(i);
+                    ArrayList urls = new ArrayList();
+                    urls.add(deploymentFileData.getFile().toURL());
+                    urls.add(configCtx.getAxisConfiguration().getRepository());
+                    String webLocation = DeploymentEngine.getWebLocationString();
+                    if (webLocation != null) {
+                        urls.add(new File(webLocation).toURL());
+                    }
                     ClassLoader classLoader = Utils.createClassLoader(
-                            new URL[]{deploymentFileData.getFile().toURL()},
+                            urls,
                             configCtx.getAxisConfiguration().getSystemClassLoader(),
                             true,
                             (File) configCtx.getAxisConfiguration().
@@ -279,7 +286,7 @@
         } catch (Exception e) {
             // Seems like the jax-ws jars missing in the class path .
             // lets try with annogen
-            log.debug(Messages.getMessage(DeploymentErrorMsgs.JAXWS_JARS_MISSING,e.getMessage()),e);
+            log.info(Messages.getMessage(DeploymentErrorMsgs.JAXWS_JARS_MISSING,e.getMessage()),e);
             axisService = createAxisServiceUsingAnnogen(className, classLoader, serviceLocation);
         }
         return axisService;

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?rev=619477&r1=619476&r2=619477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Thu Feb  7 08:12:12 2008
@@ -649,6 +649,26 @@
         excludeList.add("shutDown");
     }
 
+    public static ClassLoader createClassLoader(ArrayList urls, ClassLoader serviceClassLoader,
+                                                boolean extractJars, File tmpDir) {
+        URL url = (URL) urls.get(0);
+        if (extractJars) {
+            try {
+                URL[] urls1 = Utils.getURLsForAllJars(url, tmpDir);
+                urls.remove(0);
+                urls.addAll(0, Arrays.asList(urls1));
+                URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
+                return new DeploymentClassLoader(urls2, null, serviceClassLoader);
+            } catch (Exception e){
+                log.warn("Exception extracting jars into temporary directory : " + e.getMessage() + " : switching to alternate class loading mechanism");
+                log.debug(e.getMessage(), e);
+            }
+        }
+        List embedded_jars = Utils.findLibJars(url);
+        URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
+        return new DeploymentClassLoader(urls2, embedded_jars, serviceClassLoader);
+    }
+    
     public static ClassLoader createClassLoader(URL[] urls, ClassLoader serviceClassLoader,
                                                 boolean extractJars, File tmpDir) {
         if (extractJars) {



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