code: void invokeAction(UrlInfo urlInfo, ResponseHelper responseHelper) throws ServletException {
          try {
              // May be there isn't any controller, so the page will be rendered
              // without calling any action
              if (urlInfo.getController() != null) {
                  Strategy strategy = calculateStrategy(urlInfo.getController());
                  LOGGER.debug("Strategy: {}", strategy);
                  Object result = null;
                  try {
                      switch (strategy) {
                      case INHERIT:
                          result = inheritedStrategy(urlInfo, responseHelper);
                          break;
                      default:
                          result = signatureStrategy(urlInfo, responseHelper);
                          break;
                      }
                      // Si hay un resultado, lo serializamos, así no lo tiene que hacer el
                      // desarrollador en el método del controlador
                      if (result != null) {
                          responseHelper.serialize(result);
                      }
                  } catch (InvocationTargetException e) {
                      responseHelper.serialize(e.getTargetException());
                  }
              } else {
                  LOGGER.warn("There is not controller defined for url [{}]", urlInfo.getUrl());
              }
          } catch (ClassNotFoundException e) {
              LOGGER.warn(e.getLocalizedMessage(), e);
          } catch (NoSuchMethodException e) {
              LOGGER.warn("NoSuchMethodException {}", e.getLocalizedMessage());
          } catch (Exception e) {
              LOGGER.warn(e.getLocalizedMessage(), e);
              throw new ServletException(e);
          }
  	}
docs: Calls the controller that must answers the request whose information is in
  <code>urlInfo</code>. This method calculates the strategy used to write the
  controller, then calls the controller and finally if there was any object
  returned by the controller's action, this method store that object into
  <code>responseHelper</code>.
  
  @param urlInfo
  Information extracted from the request URL.
  @param responseHelper
  ResponseHelper object used in this transaction.
  @throws ServletException
  If something went wrong in the communication.