Mic*_*mer 6 java apache smb jcifs apache-commons-vfs
我正在尝试使用smb URL访问本地计算机上的文件夹.我的项目使用的是jar:commons-vfs2-2.0.jar和jcifs-1.3.17.jar(以及所有其他必需的jar).其中的代码是:
public static void main(String[] args) throws FileSystemException {
jcifs.Config.registerSmbURLHandler();
StaticUserAuthenticator auth = new StaticUserAuthenticator(<domain>,<user>,<password>);
FileSystemOptions opts = new FileSystemOptions();
DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);
FileSystemManager fs = VFS.getManager();
FileObject smbFile = fs.resolveFile("smb://10.0.2.2/TimeOut/");
System.out.println(smbFile.exists() + " " + smbFile.getContent().getLastModifiedTime());
}
Run Code Online (Sandbox Code Playgroud)
我收到了例外:
线程"main"中的异常org.apache.commons.vfs2.FileSystemException:无法确定文件类型"smb://10.0.2.2/TimeOut".at org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:505)位于com.newsway.tests.VfsTest的org.apache.commons.vfs2.provider.AbstractFileObject.exists(AbstractFileObject.java:477) .main(VfsTest.java:23)引起:jcifs.smb.SmbAuthException:登录失败:帐户当前已禁用.在jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:546)jcifs.smb.SmbTransport.send(SmbTransport.java:663)jcifs.smb.SmbSession.sessionSetup(SmbSession.java:390)jcifs.smb. SmbSession.send(SmbSession.java:218)在jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)jcifs.smb.SmbFile.doConnect(SmbFile.java:911)jcifs.smb.SmbFile.connect(SmbFile) .java:954)jcifs.smb.SmbFile.open(SmbFile.java:880)jcifs.smb.SmbFile.open(SmbFile.java:972)jcifs.smb.SmbFile.open(SmbFile.java:1006)在jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:73)jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:65)at jcifs.smb.SmbFile.getInputStream(SmbFile.java:2844)at org.apache.commons. vfs2.provider.url.UrlFileObject.doGetType(UrlFileObject.java:89)在org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:496)
据我所知,相关部分是:登录失败:帐户目前已禁用.
尽管我的用户/密码/域很好,但我正在完成VFS文档页面中定义的内容.
我错过了什么?
小智 -1
我使用了不同的身份验证方法并且有效,您可以尝试一下。
String url = "smb://10.0.2.2/TimeOut/";
NtlmPasswordAuthentication authen = new NtlmPasswordAuthentication(<domain>,<username>,<password>);
SmbFile smbFile = new SmbFile(url,authen);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |