Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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
java.io.IOException:登录失败:vfs2的用户名未知或密码错误_Java_Sftp_Vfs - Fatal编程技术网

java.io.IOException:登录失败:vfs2的用户名未知或密码错误

java.io.IOException:登录失败:vfs2的用户名未知或密码错误,java,sftp,vfs,Java,Sftp,Vfs,前几天,我使用vfs2编写了一个简单的连接和文件上传的工作代码。突然,该方法停止工作,我开始收到: java.io.IOException: Logon failure: unknown user name or bad password 我尝试了三个不同的用户,我可以使用他们访问sftp服务器,但没有成功。在故意拼错我的密码或用户名时,我收到一个不同的错误: org.apache.commons.vfs2.FileSystemException: Could not connect to S

前几天,我使用vfs2编写了一个简单的连接和文件上传的工作代码。突然,该方法停止工作,我开始收到:

java.io.IOException: Logon failure: unknown user name or bad password
我尝试了三个不同的用户,我可以使用他们访问sftp服务器,但没有成功。在故意拼错我的密码或用户名时,我收到一个不同的错误:

org.apache.commons.vfs2.FileSystemException: Could not connect to SFTP server
Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to SFTP server
Caused by: com.jcraft.jsch.JSchException: Auth fail
不知道有多少程序一天运行正常,另一天登录失败。我没有改变任何事情。我的方法的代码:

public static void encryptFile(File input, File output)
{
    FileSystemManager fsManager;
    try {

        /*SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance();
        FileSystemOptions fsOptions = new FileSystemOptions();
        builder.getKnownHosts(fsOptions);
        builder.setUserDirIsRoot(fsOptions, false);
        builder.setTimeout(fsOptions, 5000);*/
        FileSystemOptions fsOptions = new FileSystemOptions();
        SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fsOptions, "no");

        fsManager = VFS.getManager();
        String uri = "sftp://" + Env.getFtpUserEncrypt() + ":" + 
           Env.getFtpPassEncrypt() + "@" + Env.getFtpUrlEncrypt() + "/app/" + input.getName();

        FileObject dest = fsManager.resolveFile(uri, fsOptions);    
        String filePath = input.getCanonicalPath();

        FileObject orig = fsManager.resolveFile(filePath, fsOptions);
        dest.copyFrom(orig, Selectors.SELECT_SELF);;

    } catch (Exception e)
    {
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        String temp = errors.toString();
        log.error("Error putting file onto ftp: " + temp);
        return;
    }
}
Edit:Env只是一个用于定义我的凭证变量的类。在本例中,Env用于定义连接的用户名、密码和url


什么最有可能导致此问题?这是一个错误,还是我的身份验证实际上是错误的?

我尝试使用相同的凭据连接到另一台服务器,但连接没有问题。然后我重试了我遇到问题的服务器,这似乎以某种方式“唤醒它”,并且连接时没有给定错误。不确定为什么这会有助于纠正错误,但这是一个解决办法

什么是
Env
?请提供所有相关信息。除非您提供所有相关信息,否则任何人都无法帮助您。例如,
Env.getFtpPassEncrypt()
实际上做什么?包括源代码。设身处地问问自己,如果你没有编写代码并被要求调试它,你需要什么。@JimGarrison为什么我要包含包含敏感信息的代码?我告诉过你它是故意的。这是一个变量,是我的密码。与其他两个类似,它们定义了我的用户名和url。@JimGarrison感谢您的帮助!