2014-09-04 327 views
-1

我前几天使用vfs2进行简单的连接和文件上载。突然,方法停止工作,我开始接受:java.io.IOException:登录失败:未知的用户名或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 

不知道有多少程序去1天完美合作,登录失败的另一个。我没有改变任何东西。我的代码为我的方法:

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; 
    } 
} 

编辑:Env只是一个类用于定义我的凭证变量。在这种情况下,Env用于定义我的用户名,密码和连接的URL。

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

+0

什么是'Env'?请包含所有相关信息。 – 2014-09-04 16:41:27

+0

@JimGarrison新增。 – antihero989 2014-09-04 16:47:36

+1

除非您提供所有相关信息,否则任何人都无法帮助您。例如,Env.getFtpPassEncrypt()实际上做了什么?包含源代码。把自己置于我们的位置,问自己如果你没有编写代码并被要求调试它,你会需要什么。 – 2014-09-04 16:53:22

回答

0

我试图使用相同的凭据连接到不同的服务器,这可以连接没有问题。然后,我重试了我遇到问题的服务器,并且似乎以某种方式“唤醒”了服务器,并且没有发现任何错误。不知道为什么这将有助于纠正错误,但它仍然是一项工作。

相关问题