我正在尝试在 NiFi ExecuteScript 处理器中运行 python 脚本。此脚本使用来自https://pypi.org/project/ldap3/的ldap3库。我知道处理器运行 Jython,并且我无法使用已编译的代码、文件等,但我注意到该库声称是:.so
一个严格符合 RFC 4510 的 LDAP V3 纯 Python 客户端库
我已经在处理器的属性选项卡中定义了包含库的文件夹的路径,使用
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 - server.my.domain:9091 - 错误 ExecuteScript [id=xxxx] 由于 org.apache.nifi.processor.exception.ProcessException 无法处理会话:javax.lang.NoClassDefFoundError:org/scijava/ jython/shaded/javax/xml/bind/DatatypeConverter 在第 5 行:javax.script.ScriptException:javax.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:org/scijava/jython/shaded/javax/xml/bind/DatatypeConverter在第 5 行
果然,scipt 中的第 5 行是:
import ldap3
我有其他不使用 ldap3 的脚本成功运行。