} else {
method = lookupMethod(service, call, signature);
}
if (method == null) {
throw new ServiceInvocationException(("cannot find the method " + call + " for "
+ service.getClass().getName()));
}
Object result = null;
try {
result = ClassUtil.invokeMethod(service, method, call.getArguments());
} catch (IllegalArgumentException e) {
throw new ServiceInvocationException(e);
} catch (IllegalAccessException e) {
throw new ServiceInvocationException(e);
} catch (InvocationTargetException e) {
result = e.getTargetException();
}
BuffaloProtocal.getInstance().marshall(result, writer);