Hello Everyone,
I have a MessageStyle service which has the following signatures:
Document sendData(Document doc) throws RemoteException{}
Everything works fine till I get an exception:
I wrote a method like this where I access the SOAPBody on the server side
and set the faultString and errorCode and return it to the client.
public static RemoteException setSOAPFaultElement(Exception ex) throws
RemoteException{
try{
javax.xml.soap.SOAPBody sb1 = null;
sb1 =
MessageContext.getCurrentContext().getResponseMessage().getSOAPPart().getEnv
elope().getBody();
System.out.println(sb1.getClass());
javax.xml.soap.SOAPFault fault = sb1.addFault();
fault.setFaultString("Exception " + ex.toString());
System.out.println(fault.getFaultString());
fault.setFaultCode("Server");
System.out.println("Exception is being set in the fault body");
return new RemoteException(ex.toString());
}catch(SOAPException e){
throw new RemoteException(ex.toString());
}
}
But on the client side when I get an exception and in the Exception block I
try to access the exception from the SOAPBody object I get a
NullPointerExcption and the SOAPBody is empty.
Then probing further I turned on the SOAPMonitor and discovered that the
there was no response message in cases where there is exception.
Thus what I cannnot figure out it is how are exception handled in context of
MessageStyle webservices.
Any pointers will really help.
Bhanu Pabreja.