You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ferruh Zamangoer <fe...@gmx.de> on 2005/05/25 17:43:04 UTC

Using Axis Fault

Hi,

 

I want to know if the steps which use to throw a Fault is right. I write a
interface in with two methods like:

 

1.)

public interface CUserService

{

    public boolean addUser(String pseudonym, User user) throws
CUserException;

    public boolean removeUser(String pseudonym) throws CUserException;

}

 

2.) In the class CUserException I write the following:

public class CUserException extends RemoteException

{

            public  CUserException(String message)

            {

                        super(message);

}

}

 

3.)  After that I use Java2WSDL and generate my wsdl file.

4.) I use WSDL2Java to generate the client and server stubs. I see that in
the wsdd file is an entry like:

 

<typeMapping

        xmlns:ns="http://exception.confuoco"

        qname="ns:CUserException"

        type="java:confuoco.exception.CUserException"

        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"

        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

      />

5.) Then I deploy the service. 

5.) I see that my CUserException class was overwritten by WSDL2Java.

6.) I write in my CUserServiceSoapBindingImpl a "if else" to test the fault
like: 

 

public boolean addUser(java.lang.String pseudonym, confuoco.webservice.User
user) throws confuoco.exception.CUserException {

        

            if(user != null)

            {

                        System.out.println("User is not null");

            }

            else

            {

                        System.out.println("User is null ");

                        CUserException cue = new CUserException();

                        cue.setFaultString("User object is null ");

                        throw cue;

            }

            

            return false;

    }

 

7.) on the Client side I catch the Axis Fault with:

 

try

                        {

                                   

                                   CUserServiceServiceLocator locator = new
CUserServiceServiceLocator();

                                   CUserService cUserService =
locator.getCUserService();

                                   User user = null;

                                   cUserService.addUser("Test", null);

                                               

                        }

                        

                        catch(ServiceException se)

                        {

                                   se.printStackTrace();

                        }

                        catch(AxisFault af)

                        {

                                   System.out.println("AXisFault: " +
af.getFaultString());

                                   

                        }

 

Console: 

Ouput: User object is null.

 

 

Is that the right way to throw a Fault and catch???? If  I use
cue.setMessage ("User object is null "); instead cue.setFaultString("User
object is null "); and want to catch it on the client side I become for the
result not the string a null object is returned? 

 

 

Thanks for any help.

 

Regards

Ferruh