Я пытаюсь запустить скрипт Python в процессоре NiFi ExecuteScript.Этот сценарий использует библиотеку ldap3 из: https://pypi.org/project/ldap3/. Я знаю, что процессор работает с Jython, и что я не могу использовать скомпилированный код, .so
файлы и т. Д., Но я заметил, чтобиблиотека утверждает, что:
Строго соответствующая RFC 4510 клиентская библиотека Python для чистого Python V3
Я определил путь к папке, содержащей библиотеку, в процессоре СВОЙСТВА вкладка, используя
Script Engine : python
Script File : /mnt/path_to_my_scripts/run.py
Script Body :
Module Directory : /mnt/path_to_my_libs
... где папка библиотеки ldap3:
/mnt/path_to_my_libs/ldap3
Когда я запускаю процессор, я получаю следующее сообщение об ошибке:
16: 17: 32 GMT - server.my.domain: 9091 - ОШИБКА ExecuteScript [id = xxxx] Не удалось обработать сеанс из-за org.apache.nifi.processor.exception.ProcessException: javax.lang.NoClassDefFoundError: org / scijava / jython / затененный / javax / xml / bind / DatatypeConverter находится в строке номер 5: javax.script.ScriptException: javax.lang.NoClassDefFoundError: java.lang.NoClassijror: joCr / jedge scound/ javax / XML / связывания / DatatypeConverter в строке № 5
Конечно, строка № 5 в тексте:
import ldap3
У меня успешно работают другие сценарии, которые не используйте ldap3.