我正在使用vfs2(不是vfs)来访问ftp。现在我也使用smb协议,但它不起作用。 我总是得到例外:
ClassNotFoundException: org.apache.commons.vfs.provider.FileProvider
但是当我使用vfs2时,使用commons.vfs.provider而不是commons.vfs2.provider搜索类是很奇怪的 - 因为在vfs2中该类存在。
我是否想念图书馆(jar)?
我目前有:commons-vfs2-2.0.jar
,commons-vfs2-sandbox-2.0.jar
(必须添加以查找smb协议),jcifs-1.3.17.jar
,commons-net-3.3.jar
,commons-collections-3.2.1.jar
,{ {1}}可能更多..
这是我完整的StackTrace:
commons-logging-1.1.1.jar
答案 0 :(得分:2)
初看起来,您似乎需要commons-vfs.jar
而非commons-vfs2-2.0.jar
,因为commons-vfs2-2.0.jar
中的包名称为org.apache.commons.vfs2.provider.jar
。但这可能会导致混淆vfs和vfs2类的问题而无法正常工作。
因此请确保您已加载以下jar(仅限vfs2):
然后还在vfs-providers.xml
内添加META-INF
指向SmbFileProvider的正确类:
<provider class-name="org.apache.commons.vfs2.provider.smb.SmbFileProvider">
<scheme name="smb"/>
<if-available class-name="jcifs.smb.SmbFile"/>
</provider>