Hallöchen,
ich möchte via SFTP eine Datei vom Unix-Server auf mein Windows-Rechner mittels Apache VFS 2.0 übertragen. Leider bekomme ich eineFehlermeldung ;(. Mit FTP bekomme ich sie übertragen.
Kann mir jemand hier weiterhelfen? Danke.
Quell-Server: Unix-Rechner mit HP-UX
Quell-Datei ist: sftp://<host-name>/home/<user-folder>/test_sftp/dir.dat
Zielrechner: Windows XP Professional Version 2002 Service pack 3
Beim SFTP-Transfer erhalte ich die folgende Fehlermeldung:
Ich verwende:
- Windows XP Professional Version 2002 Service pack 3
- Java -> JDK 1.5.0_15
- commons-vfs2-2.0.jar
- commons-io-1.4.jar
- commons-collections-3.2.1.jar
- commons-logging-1.1.1.jar
- commons-net-3.0.1.jar
- httpclient-4.1.2.jar
- jackrabbit-standalone-1.6.4.jar
- dsn.jar
- imap.jar
- mailapi.jar
- pop3.jar
- smtp.jar
- jcifs-0.8.3.jar
- jsch-0.1.44.jar
Mein Code sieht wie folgt aus:
ich möchte via SFTP eine Datei vom Unix-Server auf mein Windows-Rechner mittels Apache VFS 2.0 übertragen. Leider bekomme ich eineFehlermeldung ;(. Mit FTP bekomme ich sie übertragen.
Kann mir jemand hier weiterhelfen? Danke.
Quell-Server: Unix-Rechner mit HP-UX
Quell-Datei ist: sftp://<host-name>/home/<user-folder>/test_sftp/dir.dat
Zielrechner: Windows XP Professional Version 2002 Service pack 3
Beim SFTP-Transfer erhalte ich die folgende Fehlermeldung:
Java:
org.apache.commons.vfs2.FileSystemException: Could not read from "sftp://<host-name>/home/<user-folder>/test_sftp/dir.dat" because it is a not a file.
at org.apache.commons.vfs2.provider.sftp.SftpFileObject.doGetInputStream(SftpFileObject.java:502)
at org.apache.commons.vfs2.provider.AbstractFileObject.getInputStream(AbstractFileObject.java:1307)
at org.apache.commons.vfs2.provider.DefaultFileContent.getInputStream(DefaultFileContent.java:396)
at UxTest.main(UxTest.java:62)
Ich verwende:
- Windows XP Professional Version 2002 Service pack 3
- Java -> JDK 1.5.0_15
- commons-vfs2-2.0.jar
- commons-io-1.4.jar
- commons-collections-3.2.1.jar
- commons-logging-1.1.1.jar
- commons-net-3.0.1.jar
- httpclient-4.1.2.jar
- jackrabbit-standalone-1.6.4.jar
- dsn.jar
- imap.jar
- mailapi.jar
- pop3.jar
- smtp.jar
- jcifs-0.8.3.jar
- jsch-0.1.44.jar
Mein Code sieht wie folgt aus:
Java:
public class UxTest
{
public static void main(String[] args)
{
try
{
Logger logger = Utils.initLog4j();
logger.debug("Logger Start");
StaticUserAuthenticator unixAuth = new StaticUserAuthenticator null, "<username>", "<password>");
FileSystemOptions opts = new FileSystemOptions();
SftpFileSystemConfigBuilder fileSystemConfigBuilder = SftpFileSystemConfigBuilder.getInstance();
fileSystemConfigBuilder.setStrictHostKeyChecking(opts, "no");
DefaultFileSystemConfigBuilder defaultFileSystemConfigBuilder = DefaultFileSystemConfigBuilder.getInstance();
defaultFileSystemConfigBuilder.setUserAuthenticator(opts, unixAuth);
FileSystemManager manager = VFS.getManager();
FileObject file = manager.resolveFile("sftp://<hostname>:22/home/<username>/test_sftp/dir.dat", opts);
// Mit dieser Codezeile funktioniert die FTP-Dateiübertragung einwandfrei.
// FileObject file = VFS.getManager().resolveFile("ftp://<hostname>:21/home/<username>/test_sftp/dir.dat", opts);
System.out.println(file.getName());
FileContent fileContent = file.getContent();
InputStream is = fileContent.getInputStream();
FileOutputStream os = new FileOutputStream(new File("D:/eclipse-workspaces/3.4.1/ws-sftp-test/my-sftp/test/out/"+file.getName().getBaseName()));
IOUtils.copy(is, os);
file.close();
System.out.println("FTP-Übertragung ohne Fehler beendet.");
}
catch(Exception e)
{
e.printStackTrace();
Throwable ex = e.getCause();
while (ex != null)
{
ex.printStackTrace();
ex = ex.getCause();
}
}
}
}
Zuletzt bearbeitet: