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 sc...@apache.org on 2007/07/17 00:13:18 UTC

svn commit: r556750 - in /webservices/axis2/trunk/java/modules: jaxws/src/org/apache/axis2/jaxws/core/ jaxws/src/org/apache/axis2/jaxws/server/ jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ kernel/src/org/apache/axis2/

Author: scheu
Date: Mon Jul 16 15:13:16 2007
New Revision: 556750

URL: http://svn.apache.org/viewvc?view=rev&rev=556750
Log:
AXIS2-2975
Contributor:Roy Wood
Minor addition to AxisFault to allow an AxisFault to be created with both a MessageContext and a throwable cause.
Small change to the jaxws module to use the api.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaBeanDispatcher.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java?view=diff&rev=556750&r1=556749&r2=556750
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java Mon Jul 16 15:13:16 2007
@@ -18,6 +18,7 @@
  */
 package org.apache.axis2.jaxws.core;
 
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.jaxws.description.EndpointDescription;
 import org.apache.axis2.jaxws.description.OperationDescription;
@@ -73,6 +74,7 @@
     // If a local exception is thrown, the exception is placed on the message context.
     // It is not converted into a Message.
     private Throwable localException = null;
+    private AxisFault causedByException = null;
 
     /**
      * Construct a MessageContext without a prior Axis2 MessageContext
@@ -252,6 +254,21 @@
         localException = t;
     }
     
+    /**
+     * @param t
+     */
+    public void setCausedByException (AxisFault t){
+        this.causedByException = t;
+    }
+    
+    /**
+     * @return
+     */
+    public AxisFault getCausedByException(){
+        return this.causedByException;
+    }
+    
+
     /**
      * Set the wrapper MEPContext.  Internally, this method also sets
      * the MEPContext's children so the pointer is bi-directional; you can

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java?view=diff&rev=556750&r1=556749&r2=556750
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java Mon Jul 16 15:13:16 2007
@@ -126,9 +126,17 @@
                 // If this is a fault message, we want to throw it as an
                 // exception so that the transport can do the appropriate things
                 if (responseMsgCtx.getMessage().isFault()) {
-                    faultToReturn = new AxisFault("An error was detected during JAXWS processing",
-                                                  axisResponseMsgCtx);
-                } else {
+                    
+                    //Rather than create a new AxisFault, we should use the AxisFault that was
+                    //created at the causedBy
+                    if (responseMsgCtx.getCausedByException() != null)
+                        faultToReturn = responseMsgCtx.getCausedByException();
+                    else {
+                        faultToReturn = new AxisFault("An error was detected during JAXWS processing",
+                                                                                 axisResponseMsgCtx);
+                        
+                    }
+                                    } else {
                     //This assumes that we are on the ultimate execution thread
                     ThreadContextMigratorUtil.performMigrationToContext(
                             Constants.THREAD_CONTEXT_MIGRATOR_LIST_ID, axisResponseMsgCtx);

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaBeanDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaBeanDispatcher.java?view=diff&rev=556750&r1=556749&r2=556750
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaBeanDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaBeanDispatcher.java Mon Jul 16 15:13:16 2007
@@ -34,6 +34,7 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.xml.ws.soap.SOAPBinding;
+import org.apache.axis2.AxisFault;
 import java.lang.reflect.Method;
 
 /**
@@ -126,6 +127,14 @@
         if (faultThrown) {
             responseMsgCtx = MessageContextUtils.createFaultMessageContext(mc);
             responseMsgCtx.setMessage(message);
+
+            AxisFault axisFault = new AxisFault("An error was detected during JAXWS processing",
+                                              responseMsgCtx.getAxisMessageContext(),
+                                              fault);
+            
+            responseMsgCtx.setCausedByException(axisFault);
+
+
         } else {
             responseMsgCtx = MessageContextUtils.createResponseMessageContext(mc);
             responseMsgCtx.setMessage(message);

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java?view=diff&rev=556750&r1=556749&r2=556750
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java Mon Jul 16 15:13:16 2007
@@ -295,6 +295,19 @@
         setFaultCode(faultCode);
     }
 
+    
+    /**
+     * @param message
+     * @param faultMessageContext
+     * @param cause
+     */
+    public AxisFault(String message, MessageContext faultMessageContext, Throwable cause) {
+        super(message, cause);
+
+        this.faultMessageContext = faultMessageContext;
+    }
+
+
     /**
      * @param messageText - this will appear as the Text in the Reason information item of SOAP Fault
      * @param faultCode   - this will appear as the Value in the Code information item of SOAP Fault



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