Activiti Пользовательский интерфейс Spring App интеграция - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующие приложения Activiti 6, запущенные из официальных предоставленных .WAR файлов.Успешно развернул их на моем локальном хосте

Пока что я могу использовать activiti-app для создания BPMN-файлов и запуска приложений с использованием интерфейса.Пока все хорошо.

Однако я хочу написать свои собственные приложения Spring, но иметь возможность просматривать их работающие с использованием приложений activiti UI.

Итак, посмотрите на baeldung-активити учебник.Вы можете запустить приложение.

@GetMapping("/start-process")
public String startProcess() {
    runtimeService.startProcessInstanceByKey("my-process");
    return "Process started. Number of currently running process instances = " + runtimeService.createProcessInstanceQuery().count();
}

Вышеприведенное возвращает возвращаемое значение каждый раз при достижении конечной точки.

У меня такие вопросы.

Использование инструментов activiti (запущенных на localhost: 8008) какможно посмотреть процессы.Как мне связать автономное Java-приложение.(работает на localhost: 8081) с интерфейсами Activiti ui?

1 Ответ

0 голосов
/ 18 сентября 2018

Это довольно легко, если у вас настроен и работает activity-rest.API REST задокументирован здесь .

Так что вам просто нужно сделать вызов веб-службы для правильной конечной точки API.Например, чтобы перечислить все процессы, которые вам нужно сделать, запрос GET к конечной точке repository/process-definitions.

Примечание: API остальных использует обычную аутентификацию.

public void loadProcesses(){
    // the username and password to access the rest API (same as for UI)
    String plainCreds = "username:p@ssword";
    byte[] plainCredsBytes = plainCreds.getBytes();
    byte[] base64CredsBytes = Base64.getEncoder().encode(plainCredsBytes);
    String base64Creds = new String(base64CredsBytes);

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", "Basic " + base64Creds);
    RestTemplate restTemplate = new RestTemplate();
    HttpEntity<String> request = new HttpEntity<>(headers);
    ResponseEntity<String> responseAsJson = restTemplate.exchange("http://localhost:8080/activiti-rest/repository/process-definitions", HttpMethod.GET, request, String.class);
}

Ответ на следующий вызов API будет в формате JSON, как

{
  "data": [
  {
    "id" : "oneTaskProcess:1:4",
    "url" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
    "version" : 1,
    "key" : "oneTaskProcess",
    "category" : "Examples",
    "suspended" : false,
    "name" : "The One Task Process",
    "description" : "This is a process for testing purposes",
    "deploymentId" : "2",
    "deploymentUrl" : "http://localhost:8081/repository/deployments/2",
    "graphicalNotationDefined" : true,
    "resource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.xml",
    "diagramResource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.png",
    "startFormDefined" : false
  }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
 }
...