我有一个在 Tomcat 6.0.26 (windows server 2008 r2 sp1) 上运行的 JSP,它有一个 samba (jcifs-1.3.17.jar) 连接来列出在远程服务器上找到的文件。
在 AD 控制器更新到 Windows 2012(完全修补)之前,这没有任何问题。
现在,我不能再列出 Samba 共享上的文件了。
SmbFile sfFile = new SmbFile("smb://myserver.com/share/", "subfolder", new NtlmPasswordAuthentication("MYDOM", session.getAttribute("UserID").toString(), session.getAttribute("UserCode").toString()));
SmbFile[] asfDirectoryList = sfFile.listFiles("webversion" + session.getAttribute("PLCode").toString().substring(0,3) + "*.xls");
第二行返回以下异常:
org.apache.jasper.JasperException: jcifs.smb.SmbException: The network name cannot be found.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:407)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
jcifs.smb.SmbException: The network name cannot be found.
jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
jcifs.smb.SmbTransport.send(SmbTransport.java:663)
jcifs.smb.SmbSession.send(SmbSession.java:238)
jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)
jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
jcifs.smb.SmbFile.connect(SmbFile.java:954)
jcifs.smb.SmbFile.connect0(SmbFile.java:880)
jcifs.smb.SmbFile.resolveDfs(SmbFile.java:669)
jcifs.smb.SmbFile.send(SmbFile.java:773)
jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1986)
jcifs.smb.SmbFile.doEnum(SmbFile.java:1738)
jcifs.smb.SmbFile.listFiles(SmbFile.java:1715)
jcifs.smb.SmbFile.listFiles(SmbFile.java:1681)
org.apache.jsp.financials.frFinancialsFileListing_jsp._jspService(frFinancialsFileListing_jsp.java:220)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
有谁知道为什么会发生这种情况以及如何解决它?
[编辑] 谜团:将 AD 控制器更新到 Windows 2012 不应该对访问文件服务器上的共享的网络服务器产生影响(两者都运行 Windows 2008 r2 sp1)。我只是无法理解。