我正在尝试通过JCIFS访问公司网络中的共享文件夹。但是当我尝试列出共享文件夹下的文件时,它会抛出一个SmbException,如下所示,
jcifs.smb.SmbException: 0xC000009A
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:316)
at jcifs.smb.SmbSession.send(SmbSession.java:218)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)
at jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
at jcifs.smb.SmbFile.connect(SmbFile.java:954)
at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
at jcifs.smb.SmbFile.getType(SmbFile.java:1282)
at jcifs.smb.SmbFile.doEnum(SmbFile.java:1733)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1715)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1648)
0xC000009A说它是NT_STATUS_INSUFFICIENT_RESOURCES但是我需要做些什么来解决这个问题。共享文件夹只能由我自己访问。我使用了以下网址格式。
smb://domain;username:password@ip-address/<foldername>
感谢您的帮助。
答案 0 :(得分:8)
我在使用JCIFS开发文件上传到Windows共享时遇到了同样的错误。
事实证明,目标Windows机器在系统日志中输入错误:
Source: srv
Event ID: 2017
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SERVER01
Description: The server was unable to allocate from the
system nonpaged pool because the server reached the configured limit
for nonpaged pool allocations.
在连接到现代(Vista及以上)版本的Windows时,使用较旧的(SMB1,例如Windows XP prooflink)版本的协议可能会导致此错误。
This article包含问题的解决方法。它需要编辑目标机器的注册表值,因此我无法将其称为完整解决方案。
答案 1 :(得分:3)