* @return WebServiceException
*/
private static WebServiceException createWebServiceException(String message, Throwable t) {
// We might have an embedded WebServiceException that has a good message on it
WebServiceException me = (WebServiceException)findException(t, WebServiceException.class);
if (me != null) {
String meMessage = me.getMessage();
if (meMessage != null) {
if (message == null) {
message = meMessage;
} else {
message = message + ": " + meMessage;
}
}
}
// Get the root cause. We want to strip out the intermediate exceptions (like AxisFault) because
// these won't make sense to the user.
Throwable rootCause = null;
if (t != null) {
rootCause = getRootCause(t);
}
rootCause = rootCause == null ? t : rootCause;
WebServiceException e = null;
// The root cause may not have a good message. We might want to enhance it
String enhancedMessage = enhanceMessage(rootCause);
if (enhancedMessage != null) {
if (message != null)
message = message + ": " + enhancedMessage;
else
message = enhancedMessage;
}
if (message != null) {
e = new WebServiceException(message, rootCause);
} else {
e = new WebServiceException(rootCause);
}
if (log.isDebugEnabled()) {
log.debug("Create Exception:", e);
}