Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 缺少使方法工作的return语句_Spring_Sftp - Fatal编程技术网

Spring 缺少使方法工作的return语句

Spring 缺少使方法工作的return语句,spring,sftp,Spring,Sftp,我正试图通过sftp列出远程服务器上的文件 我被困在这里: 我应该把什么作为retrun语句来让它工作^ ^' @Override public LsEntry connectToServer() { String SFTPHOST = "xxxxx"; int SFTPPORT = 22; String SFTPUSER = "xxxxx"; String SFTPPASS = "xxxx";

我正试图通过sftp列出远程服务器上的文件 我被困在这里: 我应该把什么作为retrun语句来让它工作^ ^'

@Override
public LsEntry connectToServer() {
         String  SFTPHOST = "xxxxx";
         int   SFTPPORT = 22;
         String  SFTPUSER = "xxxxx";
         String  SFTPPASS = "xxxx";
         String SFTPWORKINGDIR = "/xx/vvv/bbb/rrr";

        Session session = null;
        Channel channel = null;
        ChannelSftp channelSftp = null;

        try{
            JSch jsch = new JSch();
            session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
            session.setPassword(SFTPPASS);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
            channel = session.openChannel("sftp");
            channel.connect();
            System.out.println("Starting the session ..");
            channelSftp = (ChannelSftp)channel;
            channelSftp.cd(SFTPWORKINGDIR);
            Vector filelist = channelSftp.ls(SFTPWORKINGDIR);
            for(int i=0; i<filelist.size();i++){
                LsEntry entry = (LsEntry) filelist.get(i);
                System.out.println(entry.getFilename());
            }
            while(session != null){
                System.out.println("Killing the session");
                session.disconnect();
                System.exit(0);
            }

        }catch(Exception ex){
            ex.printStackTrace();
        }
        return WHAAT ;


    }
@覆盖
公共LsEntry connectToServer(){
字符串SFTPHOST=“xxxxx”;
int-SFTPPORT=22;
字符串SFTPUSER=“xxxxx”;
字符串sftpass=“xxxx”;
字符串SFTPWORKINGDIR=“/xx/vvv/bbb/rrr”;
会话=空;
通道=空;
ChannelSftp ChannelSftp=null;
试一试{
JSch JSch=新的JSch();
session=jsch.getSession(SFTPUSER、sftport、SFTPPORT);
session.setPassword(sftpass);
java.util.Properties config=new java.util.Properties();
配置放置(“检查”、“否”);
session.setConfig(config);
session.connect();
通道=会话.openChannel(“sftp”);
channel.connect();
System.out.println(“启动会话…”);
channelSftp=(channelSftp)信道;
渠道SFTP.cd(SFTPWORKINGDIR);
向量文件列表=channelSftp.ls(SFTPWORKINGDIR);

for(int i=0;i这是因为条目为null,因为它的值仅包含在for循环中

因此,我更正了我的入境声明,它起了作用:)

LsEntry entry=null;
试一试{
JSch JSch=新的JSch();
session=jsch.getSession(用户、主机、端口);
session.setPassword(PASS);
//代码的其余部分
//....
//...
对于(int i=0;i
您的方法显示
public LsEntry connectToServer()
那么为什么不返回
LsEntry
?为什么你甚至从名为
connectToServer
的函数返回
LsEntry
?我的函数名是connectToServer,但我尝试做的不仅仅是连接到服务器,而是连接和读取文件如果我的逻辑错误,请告诉我最好的方法是什么这样做
LsEntry entry = null;
try {
    JSch jsch = new JSch();
    session = jsch.getSession(USER, HOST, PORT);
    session.setPassword(PASS);
    // the rest of the code
    //....
    //...
    for (int i = 0; i < filelist.size(); i++) {
        //cast
        entry = (LsEntry) filelist.get(i);
        System.out.println(((LsEntry) entry).getFilename());
    }
    while (session != null) {
        System.out.println("Killing the session");
        session.disconnect();
        System.exit(0);
    }

} catch (Exception ex) {
    ex.printStackTrace();
}
return (LsEntry) entry;