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);
} else {
log.error("method : '" + method.getName() + "' is invalid.");
throw new IllegalStateException();