{
throw new XFireFault("Action '" + headers.getAction() + "' was not found for service "
+ headers.getTo(), XFireFault.SENDER);
}
MessageExchange exchange = context.getExchange();
exchange.setOperation(aop.getOperationInfo());
EndpointReference faultTo = headers.getFaultTo();
OutMessage faultMsg = null;
if (faultTo != null)
{
faultMsg = processEPR(context, faultTo, aop, headers, factory);
}
else
{
faultMsg = createDefaultMessage(context, aop, headers, factory);
}
exchange.setFaultMessage(faultMsg);
EndpointReference replyTo = headers.getReplyTo();
OutMessage outMessage = null;
if (replyTo != null)
{
outMessage = processEPR(context, replyTo, aop, headers, factory);
}
else
{
outMessage = createDefaultMessage(context, aop, headers, factory);
}
exchange.setOutMessage(outMessage);
}
catch (XFireFault fault)
{
/* If this happens we've most likely received some invalid
* WS-Addressing headers, so lets try to make the best of it.