public AggregatorResponse getTasks(AggregatorRequest request) throws Exception {

    AggregatorResponse response;
    try {
      URL wsdlLocation = new URL(PropertyUtil.getServiceWSDL());
      QName serviceName =
          new QName(PropertyUtil.getServiceNamespace(), PropertyUtil.getServiceName());
      tasklistaggregatorService = new Tasklistaggregator_client_ep(wsdlLocation, serviceName);

      GetTasksInput payload = new GetTasksInput();
      payload.setUser(request.getUser());
      TaskListAggregator taskListAggregatorPort =
          tasklistaggregatorService.getTaskListAggregator_pt();
      GetTasksOutput getTasksOutput = taskListAggregatorPort.getTasks(payload);
      if (getTasksOutput != null) {
        response = readResponse(getTasksOutput);
      } else {
        throw new Exception("Null response");
      }
    } catch (TaskListAggregatorFaultMessage serviceError) {
      LogUtility.logSevere("Service fault: " + serviceError.getFaultInfo().getErrorMessage());
      throw new Exception(serviceError.getFaultInfo().getErrorMessage());
    } catch (Exception e) {
      LogUtility.logSevere("Service error: " + e.getMessage());
      throw new Exception(e.getMessage());
    }
    return response;
  }