NiFi ExecuteGroovyScript 无法解析 class JSch
NiFi ExecuteGroovyScript unable to resolve class JSch
下面的 groovyscript 用于使用 sftp 从远程计算机获取文件。我需要使用 sftp
获取文件
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
}
获取错误:
unable to resolve class JSch @ line 7, column 6. JSch ssh = new JSch() org.codehaus.groovy.syntax.SyntaxException
我正在使用导入 import com.jcraft.jsch.*
,但似乎 JSch class 不可用或导入不正确。
您必须从 http://www.jcraft.com/jsch/ 下载 jsch 库并将 jar 放入 nifi/lib 目录
或者如果您的 nifi 服务器可以访问互联网,您可以使用此脚本注释从 public 存储库
下载库
@Grab(group='com.jcraft', module='jsch', version='0.1.55')
import com.jcraft.jsch.*
...
下面的 groovyscript 用于使用 sftp 从远程计算机获取文件。我需要使用 sftp
获取文件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
}
获取错误:
unable to resolve class JSch @ line 7, column 6. JSch ssh = new JSch() org.codehaus.groovy.syntax.SyntaxException
我正在使用导入 import com.jcraft.jsch.*
,但似乎 JSch class 不可用或导入不正确。
您必须从 http://www.jcraft.com/jsch/ 下载 jsch 库并将 jar 放入 nifi/lib 目录
或者如果您的 nifi 服务器可以访问互联网,您可以使用此脚本注释从 public 存储库
下载库@Grab(group='com.jcraft', module='jsch', version='0.1.55')
import com.jcraft.jsch.*
...