Class<?> clazz = Thread.currentThread().getContextClassLoader()
.loadClass(clazzCanonicalName);
Method method = clazz.getDeclaredMethod(methodName);
if (Modifier.isPublic(method.getModifiers())
&& !Modifier.isAbstract(method.getModifiers())) {
Action action = (Action) clazz.newInstance();
setRequestAndResponse(action, request, response);
log.info(clazzCanonicalName + "#" + method.getName() + " -> start");
ActionResult actionResult = (ActionResult) method.invoke(action);
log.info(clazzCanonicalName + "#" + method.getName() + " -> end");
return getDestination(clazz, method, actionResult);