JBPM: проблема с транзитивными зависимостями пользовательского обработчика рабочих элементов - PullRequest
2 голосов
/ 06 марта 2020

Я новичок в jBPM. Я тестирую jBPM 7.32.0.Final.
Среда была настроена установщиком (ant install.demo).

Мой пример использования:

Я пытаюсь разработать и протестировать пользовательский обработчик рабочих элементов (как показано в https://www.youtube.com/watch?v=_XIZ0KRTahE), который использует oracle jdb c драйвер.
В консоли jbpm, которую я создал: новое определение рабочего элемента (CustomTask) , новый бизнес-процесс, который использует пользовательскую задачу, добавил обработчик рабочего элемента в проект, создал реализацию обработчика в Eclipse, загрузил артефакт в хранилище и добавил зависимость артефакта в проект.

Проблема:

Простой артефакт без транзитивных зависимостей работает нормально. Проблемы возникают, когда я добавляю зависимость от драйвера jdb c, который должен использоваться в обработчике рабочего элемента.

Что я сделал для разрешения переходной зависимости:

Используя консоль jbpm, я загрузил еще один артефакт с jar драйвера jdb c (ojdbc8.jar) в хранилище и добавил зависимость к артефакту обработчика рабочего элемента в артефакте драйвера jdb c. (редактируя pom обработчика. xml).

Наблюдаемое поведение:

  • Когда я пытаюсь запустить новый экземпляр процесса в консоли jbpm, я получаю

    «Ошибка обработки запроса» ( Контекстный путь: / k ie -server, Путь сервлета: / services / rest, Информация о пути: /server/containers/cust-mod_1.0.0-SNAPSHOT/processes/Custom_Module_Project.TEST/instances, Строка запроса: null)

    и в файле server.log я вижу:

    Причина: java .lang.ClassNotFoundException: oracle .simplefan.FanManager

    , который является классом из другого oracle файла jar simplefan.jar.

    Примечание. Когда я выполняю модульное тестирование в Eclipse, требуется только библиотека ojdbc8.jar !!

  • затем при удалении транзитивной зависимости от pom. xml в артефакте рабочего элемента и повторного развертывания проекта (без перезапуска jbpm), неожиданно я могу запустить новый экземпляр, и он отлично работает !!!

  • затем, когда я перезапускаю jBPM и пытаюсь запустить новый экземпляр, новый экземпляр запускается, однако пользовательская задача процесса вызывает исключение, которое я вижу в server.log:

    java .lang.ClassNotFoundException: oracle .jdb c .OracleDriver

    Когда я повторяю вышеупомянутые шаги, я могу воспроизвести все то же самое поведение.

Возможно, я упускаю что-то важное. Кто-нибудь может направить меня к правильным шагам / процедуре? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Очень ценится.

...