NiFi ExecuteGroovyScript运行SFTP脚本无法解析类JSch问题
问题解决方法
这个报错的核心原因是Apache NiFi的ExecuteGroovyScript组件默认类路径中不包含JSch依赖包,即使你在代码里写了导入语句,运行时也找不到对应的类,按以下步骤操作即可解决:
步骤1:下载JSch依赖包
选择稳定版本的JSch jar包,比如常用的jsch-0.1.55.jar,确保版本和你当前NiFi运行的JDK版本兼容。
步骤2:部署依赖到NiFi节点
将下载好的JSch jar包上传到所有运行该组件的NiFi节点的固定目录下,例如/opt/nifi/custom-deps/,给目录和jar包授予nifi进程用户的可读权限。
步骤3:配置组件额外类路径
打开ExecuteGroovyScript组件的配置页面,找到Additional classpath(额外类路径)配置项,填写JSch jar包的完整绝对路径:
- 如果只需要加载单个JSch包,填写:
/opt/nifi/custom-deps/jsch-0.1.55.jar - 如果需要加载整个目录下的所有jar包,填写:
/opt/nifi/custom-deps/(注意末尾要加斜杠)
步骤4:验证生效
保存组件配置后重新启用,再次运行脚本即可正常加载JSch类。如果依然报错,可以在脚本开头添加以下代码,查看NiFi日志确认类加载路径是否正确:
println com.jcraft.jsch.JSch.class.protectionDomain.codeSource.location
内容的提问来源于stack exchange,提问作者likeGreen
相关产品推荐
相关产品推荐

