9

我正在尝试通过 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>

感谢你的帮助。

4

2 回答 2

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 )引起的。

本文包含该问题的解决方法。它需要编辑目标机器的注册表值,所以我不能称之为完整的解决方案。

于 2012-10-10T17:26:48.607 回答