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