You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by Aleksander Slominski <as...@cs.indiana.edu> on 2007/03/20 04:27:07 UTC
Re: Service Specific Exception using WSIF Apache Axis
sambit kumar dikshit wrote:
> 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.
i think it depends on AXIS - WSIF just uses what is out there and it is
provider that makes those decisions.
> 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.
i do not think there is one perfect solution to this :-( quite often
faults that are sent by SOAP stack (not just AXIS - you shoul dnot
depend on other side to be in Java even) they are *not* declared in WSDL
and you can not count that you can deserialize some SOAP Fault into some
particular Java exception - what if Fault was generated by Python or C#?
in short i think this is for discussion and definitely one thing to
improve ...
best,
alek
---------------------------------------------------------------------
To unsubscribe, e-mail: wsif-user-unsubscribe@ws.apache.org
For additional commands, e-mail: wsif-user-help@ws.apache.org
Re: Service Specific Exception using WSIF Apache Axis
Posted by sambit kumar dikshit <sa...@apple.com>.
Hi Alek,
Thanks for your response. Yes i feel there needs to have a way as
how to handle the faults for the WS irrespective of PHP, C#, JAVA.
Regards
-Sambit
On Mar 19, 2007, at 8:27 PM, Aleksander Slominski wrote:
> sambit kumar dikshit wrote:
>> 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.
> i think it depends on AXIS - WSIF just uses what is out there and
> it is
> provider that makes those decisions.
>> 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.
> i do not think there is one perfect solution to this :-( quite often
> faults that are sent by SOAP stack (not just AXIS - you shoul dnot
> depend on other side to be in Java even) they are *not* declared in
> WSDL
> and you can not count that you can deserialize some SOAP Fault into
> some
> particular Java exception - what if Fault was generated by Python
> or C#?
>
> in short i think this is for discussion and definitely one thing to
> improve ...
>
> best,
>
> alek
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wsif-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: wsif-user-help@ws.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: wsif-user-unsubscribe@ws.apache.org
For additional commands, e-mail: wsif-user-help@ws.apache.org