The attached patch addresses a problem with JavaProvider where if a 
class is not found while generating the WSDL, the NoClassDefFoundError 
makes it all the way out to the servlet engine. Instead, an AxisFault 
should be generated that contains the message from the 
NoClassDefFoundError. I also fixed a few debug statements.

Dave Dunkin


Index: JavaProvider.java
===================================================================
RCS file: 
/home/cvspublic/xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java,v
retrieving revision 1.42
diff -u -r1.42 JavaProvider.java
--- JavaProvider.java   6 Mar 2002 23:39:17 -0000       1.42
+++ JavaProvider.java   14 Mar 2002 02:54:17 -0000
@@ -273,7 +273,7 @@
      */ 
     public void generateWSDL(MessageContext msgContext) throws AxisFault {
         if (log.isDebugEnabled())
-            log.debug(JavaUtils.getMessage("enter00", "JavaProvider::editWSDL (" + 
this + ")"));
+            log.debug(JavaUtils.getMessage("enter00", "JavaProvider::generateWSDL (" 
++ this + ")"));
 
         /* Find the service we're invoking so we can grab it's options */
         /***************************************************************/
@@ -327,8 +327,12 @@
             msgContext.setProperty("WSDL", doc);
         } catch (Exception e) {
             throw AxisFault.makeFault(e);
+        } catch (NoClassDefFoundError e) {
+            throw new AxisFault(e.toString(), e);
         }
 
+        if (log.isDebugEnabled())
+            log.debug(JavaUtils.getMessage("exit00", "JavaProvider::generateWSDL (" + 
+this + ")"));
     }
 
     private String getAllowedMethods(Handler service)

Reply via email to