We're trying to use Apache Commons VFS to access something over SFTP. It claims to support SFTP, however we're getting a MalformedURLException when it starts. Digging around I see that apache vfs is using java.net.URL. However the documentation tells me that it doesn't actually support sftp:// URLs.
Protocol handlers for the following protocols are guaranteed to exist on the search path :-
http, https, ftp, file, and jarProtocol handlers for additional protocols may also be available.
I'm using java 1.6.0 on Linux. How can I prevent java.net.URL from throwing a wobbly when it sees a sftp:// URL? I need to keep using the Apache commons VFS library, which uses java.net.URL.
See the list of dependencies that commons-vfs requires for sftp to work. Once JSch is in the classpath, your exception no longer happen. Have a look at Apache's Wiki for examples of connecting via sftp.
I've never used VFS before, but it looks like you'd need to (at least) register an SFTP FileProvider. It looks like it requires something like:
DefaultFileSystemManager fsm = ... /* Create and configure your FSM. */
fsm.addProvider("sftp", new SftpFileProvider());
There is probably a way to do the same thing through configuration file syntax.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With