Hi This is not an axis specific issue but I would appreciate any help.
I am using axis and am trying to implement exception handling functionality for my web service but I'm running into an issue.
My Exception class is: ---------------------------------------------------------------------------- public class WebException extends Exception{ private String message; public WebException(String message){ this.message = message; }
public String getMessage() { return this.message; } }
And my web services implementation class is:
public class ComSuzSiebelWebService {
private ComSuzSiebelWebServicesBean bean = null;
public void setBean(ComSuzSiebelWebServicesBean bean) throws Exception, WebException { this.bean = bean; if (bean.getAccountLocation() != "b"){ WebException e = new WebException("wrong value entered for account location"); throw e; } }
}
And in the wsdl I defined the fault as:
<wsdl:message name="WebException"> <part name="message" type="xsd:string"/> </wsdl:message> <wsdl:portType> <wsdl:operation name="setBean" parameterOrder="bean"> <wsdl:input message="intf:setBeanRequest" name="setBeanRequest"/> <wsdl:output message="intf:setBeanResponse" name="setBeanResponse"/> <wsdl:fault name="fault" message="intf:WebException"/> </wsdl:operation> </wsdl:portType>
But in the SOAP response message that I get back I'm getting the whole stack trace back
- <soapenv:Fault> <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.userException</faultcode> <faultstring> com.suz.siebel.webservice.WebException: wrong value entered for account location </faultstring> <detail> <ns2:stackTrace xmlns:ns2="http://xml.apache.org/axis/"> com.suz.siebel.webservice.WebException: wrong value entered for account location at com.suz.siebel.webservice.ComSuzSiebelWebService.setBean(ComSuzSiebelWebService.java:37) at java.lang.reflect.Method.invoke(Native Method) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:372) at ----------------------- </ns2:stackTrace> </detail> </soapenv:Fault>
My idea behind throwing the exception was to communicate back to the client that he has sent a wrong value for the "accountLocation" field of the bean that is sent to the setBean method. I don't want the whole stack trace to be sent back to the Client.
Could you pls tell what am I doing wrong or if I am taking the wrong approach here.
Thanks in advance.
Vikas Phonsa
|
- FW: exceptiong handling Vikas Phonsa
- FW: exceptiong handling Vikas Phonsa
- Re: exceptiong handling Dhanush Gopinath
- RE: exceptiong handling Vikas Phonsa
- Re: exceptiong handling Davanum Srinivas
- RE: exceptiong handling Vikas Phonsa
- RE: exceptiong handling Vikas Phonsa
- Good resources on different SOAP encoding style... David Song
- Re: Good resources on different SOAP encodi... Dhanush Gopinath
- RE: Good resources on different SOAP en... Anne Thomas Manes
- RE: Good resources on different SOAP en... Anne Thomas Manes