2012-01-23 38 views
1

我在使用Apache VFS的Android應用程序中遇到以下錯誤,並且我無法在Google上找到很多幫助。我試圖通過SSH上傳文件,並得到這個相當模糊的錯誤。根據VFS文檔,在logcat中報告的URI看起來是正確的。我唯一能想到的是,它只希望看到本地網絡主機而不是TLD。這是真的嗎?如果是這樣,我該如何解決?如果不是,這個URI對你來說看起來有什麼問題?Apache VFS的SSH URI錯誤

Caused by: org.apache.commons.vfs2.FileSystemException: Expecting/to follow the hostname in URI "sftp://username:***@mydomain.com/public_html/". 

錯誤是相同的,有或沒有特定的目標文件名。

這是完整的logcat輸出。

01-22 19:41:15.660: E/AndroidRuntime(1997): FATAL EXCEPTION: main 
01-22 19:41:15.660: E/AndroidRuntime(1997): java.lang.RuntimeException: org.apache.commons.vfs2.FileSystemException: Invalid absolute URI "sftp://username:***@mysite.com/public_html/". 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at app.specialsauce.myapp.SiteEditor.upload(SiteEditor.java:279) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at app.specialsauce.myapp.SiteEditor.testSFTPSite(SiteEditor.java:289) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at app.specialsauce.myapp.SiteEditor$10.onClick(SiteEditor.java:629) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.view.View.performClick(View.java:2532) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.view.View$PerformClick.run(View.java:9293) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.os.Handler.handleCallback(Handler.java:587) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.os.Looper.loop(Looper.java:150) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at android.app.ActivityThread.main(ActivityThread.java:4263) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at java.lang.reflect.Method.invoke(Method.java:507) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at dalvik.system.NativeStart.main(Native Method) 
01-22 19:41:15.660: E/AndroidRuntime(1997): Caused by: org.apache.commons.vfs2.FileSystemException: Invalid absolute URI "sftp://username:***@mysite.com/public_html/". 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:61) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:693) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:621) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at app.specialsauce.myapp.SiteEditor.upload(SiteEditor.java:265) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  ... 13 more 
01-22 19:41:15.660: E/AndroidRuntime(1997): Caused by: org.apache.commons.vfs2.FileSystemException: Expecting/to follow the hostname in URI "sftp://username:***@mysite.com/public_html/". 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.provider.HostFileNameParser.extractToPath(HostFileNameParser.java:155) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.provider.URLFileNameParser.parseUri(URLFileNameParser.java:50) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.provider.AbstractFileProvider.parseUri(AbstractFileProvider.java:188) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:57) 
01-22 19:41:15.660: E/AndroidRuntime(1997):  ... 16 more 

回答

0

我懷疑你有在密碼中存在問題的字符(因爲這是不顯示的唯一信息)。在將其添加到URL之前,您需要對用戶名和密碼進行百分比編碼。