code: public void invoke(String uri, String client, byte[] content) throws
              InvocationTargetException,
              IllegalAccessException {
          Map<String, String> values = getPathParametersEncoded(uri);
          Object[] parameters = new Object[arguments.size()];
          for (int i = 0; i < arguments.size(); i++) {
              ActionParameter argument = arguments.get(i);
              if (argument.getSource() == Source.PARAMETER) {
                  if (argument.getName().equals("client") && argument.getRawType().equals(String.class)) {
                      parameters[i] = client;
                  } else {
                      parameters[i] = router.converter().convertValue(values.get(argument.getName()),
                              argument.getRawType(), argument.getGenericType(), argument.getDefaultValue());
                  }
              } else {
                  // Body
                  parameters[i] = transform(argument, content);
              }
          }
          getMethod().invoke(getController(), parameters);
      }
docs: Invokes the callback.
  
  @param uri     the uri
  @param client  the client identifier (the one having sent the message)
  @param content the payload of the message
  @throws InvocationTargetException when the callback throws an exception
  @throws IllegalAccessException    when the callback cannot be called