JCIFS SmbException
Posted
技术标签:
【中文标题】JCIFS SmbException【英文标题】: 【发布时间】:2012-03-08 04:57:18 【问题描述】:我正在尝试通过 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 但我必须做些什么来解决这个问题。共享文件夹只能由我自己访问。我使用了以下 url 格式。
smb://domain;username:password@ip-address/<foldername>
感谢您的帮助。
【问题讨论】:
【参考方案1】:我在使用 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 包含该问题的解决方法。它需要编辑目标机器的注册表值,所以我不能称之为完整的解决方案。
【讨论】:
【参考方案2】:所需注册表更改的更新链接:
https://social.technet.microsoft.com/Forums/windows/en-US/30919e4f-6810-48d6-8769-2cff61f07544/event-id-2017-the-server-was-unable-to-allocate-from-the-system-nonpaged-pool-because-the-server?forum=w7itpronetworking
【讨论】:
以上是关于JCIFS SmbException的主要内容,如果未能解决你的问题,请参考以下文章
试图实现 jcifs 和 UniAddress 并得到 NoClassDefFoundError?