Service Specific Exception using WSIF Apache Axis

sambit kumar dikshit <[email protected]> Mon, 19 Mar 2007 15:20:15 -0700
Newsgroups gmane.comp.apache.webservices.wsif.user
Message-ID <[email protected]>
Hi Alek,
    I'm facing problems while trying to get the exceptions thrown  
from the Service as fault. For example i have a class called  
TestService which has a method test(String param1,String param2) and  
it throws an exception called TestException.


    public Class TestService{

    public String test(String param1, String param2) throws  
TestException {

         if(something wrong)

            {
                TestException ex = new TestException();
                ex.setErrorCode("test001");
               ex.setErrorMessage("Exception at test method line 12");

            }

     }
}



public Class TestException extends Exception implements Serializable {


private String errorCode;
private String errorMessage;

getter and setter methods for the above goes below......

}


Now the TestService class is exposed as a web service using Axis. The  
fault message part for this comes as expected in wsdl file.

I'm using WSIF Apache Axis to invoke the service from the client. I  
want to get a handle of the Fault i.e TestException class so that i  
can get the details of the error code and error message.   
Unfortunately i'm not able to get this at all. When i looked into the  
code, i checked that it always checks for the AXIS Fault and takes  
the first element of the Axis Fault detail objects and set that  
Element to WSIFMessage faultParts. I'm wondering dont we need to  
desrialize this Element to the appropriate Exception Class like we do  
for the SOAP Response Message.  Is there any specific reason we are  
not doing like this.  Also i think there is a problem with the way  
Axis handles the fault. I think it expects the exception to be a sub  
class of RemoteException. Then this limits the interoporability.

Please suggest how to overcome this type of issues.  My requirement  
is to get the Exceptyion thrown from the Service back to the client  
and client needs to introspect the exception like a normal response  
message and get the appropriate error code, message out of it.


Regards
-Sambit