In some cases, user wants to send back a custom response to client and may want to abort the message flow for some error scenarios. This can be done in a handler, which can be kept at in/out flow.
Eg:
In a messageprocess handler, if an exception occurs and if you want to endup the message flow and send back a custom message to client, use "AxisEngine.sendFault(messageContext)".
If we try to set up fault message in the MessageContext as soap body, then we need to set quite number of parameters to send back that message to client.eg: "to" address...
Eg:
In a messageprocess handler, if an exception occurs and if you want to endup the message flow and send back a custom message to client, use "AxisEngine.sendFault(messageContext)".
If we try to set up fault message in the MessageContext as soap body, then we need to set quite number of parameters to send back that message to client.eg: "to" address...
public class MessageProcessorHandler extends AbstractHandler {
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
try{
.................
}
catch (MessageFaultException e) {
String faultPayload = getFaultPayload(); //get a fault message
MessageContext faultContext = getFaultMessagecontext(msgContext,faultPayload);
AxisEngine.sendFault(faultContext);
return InvocationResponse.ABORT;
}
............
return InvocationResponse.CONTINUE;
}
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
try{
.................
}
catch (MessageFaultException e) {
String faultPayload = getFaultPayload(); //get a fault message
MessageContext faultContext = getFaultMessagecontext(msgContext,faultPayload);
AxisEngine.sendFault(faultContext);
return InvocationResponse.ABORT;
}
............
return InvocationResponse.CONTINUE;
}
No comments:
Post a Comment