private Object[] readParameter(
      LogicRequest logicRequest, LogicMethod logicMethod, Object componentInstance)
      throws SettingException {
    WebApplication application =
        (WebApplication)
            logicRequest.getServletContext().getAttribute(WebApplication.class.getName());
    Introspector introspector = application.getIntrospector();

    List<MethodParameter> methodParams = logicMethod.getParameters();

    List<ReadParameter> allParams = new ArrayList<ReadParameter>();
    allParams.addAll(methodParams);

    // instantiate parameters
    Object[] methodParamObjects = new Object[methodParams.size()];
    for (int i = 0; i < methodParamObjects.length; i++) {
      try {
        methodParamObjects[i] = methodParams.get(i).newInstance();
      } catch (ComponentInstantiationException e) {
        methodParamObjects[i] = null;
      }
    }

    List<ValidationMessage> problems =
        introspector.readParameters(
            allParams,
            componentInstance,
            logicRequest,
            application.getConverterManager(),
            methodParamObjects);

    if (problems.size() != 0) {
      throw new SettingException(problems.toString());
    }
    return methodParamObjects;
  }