首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NiFi ExecuteGroovyScript无法解析类JSch

NiFi ExecuteGroovyScript无法解析类JSch
EN

Stack Overflow用户
提问于 2021-11-23 21:05:03
回答 1查看 49关注 0票数 0

下面的groovyscript用于使用sftp从远程计算机获取文件。我需要使用sftp获取文件

代码语言:javascript
复制
import groovy.json.JsonSlurper
import com.jcraft.jsch.*

java.util.Properties config = new java.util.Properties()
config.put "StrictHostKeyChecking", "no"

JSch ssh = new JSch()
def rfile = "/path/to/remote/file/on/remote/host";
Session sess = ssh.getSession 'user','host', 22
sess.with {
setConfig config
setPassword password
connect()
Channel chan = openChannel "sftp"
chan.connect()
ChannelSftp sftp = (ChannelSftp) chan;

def flowFile = session.get()
if(!flowFile) return
flowFile.write{rawIn, rawOut->
    def keyValueList = rawIn.withReader("UTF-8"){ new JsonSlurper().parse(it) }
    sftp.get("rfile/abc.txt").withReader("UTF-8"){reader->
        rawOut.withWriter("UTF-8"){writer->
            reader.eachLine{line->
               keyValueList.each{ if(it.Key) line = line.replaceAll(it.Key, it.Value) }
               writer << line << '\n'
            }
        }
    }
}
chan.disconnect()
disconnect()
REL_SUCCESS << flowFile
}

获取错误:

代码语言:javascript
复制
 unable to resolve class JSch @ line 7, column 6. JSch ssh = new JSch()  org.codehaus.groovy.syntax.SyntaxException

我使用的是导入import com.jcraft.jsch.*,但似乎JSch类不可用或导入不合适。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-23 23:49:45

您必须从http://www.jcraft.com/jsch/下载jsch库并将jars放入nifi/lib目录

或者,如果您的nifi服务器能够访问internet,则可以使用此脚本注释从公共存储库下载库。

代码语言:javascript
复制
@Grab(group='com.jcraft', module='jsch', version='0.1.55')
import com.jcraft.jsch.*
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70087797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档