2010-06-09 61 views
0

我开发了一个java servlet,它监视网络驱动器上的文件夹中的新文件,然后根据文件的类型对它们执行一些操作。当Eclipse和Tomcat相互运行时,它在Eclipse中工作,但现在我已经将它部署到服务器(不同的计算机)上,servlet始终记录它无法找到要映射的文件夹。完全相同的网络驱动器被映射,并且该文件夹肯定存在。只有在服务器上运行servlet时,才会发生此问题,而不是在开发计算机上运行。Java Servlet说文件不存在

谢谢!

PS: 它是安装了Tomcat v6的Windows Server 2003 Enterprise Server。

回答

1

我终于想通了。

事实证明,当Tomcat运行它(显然)作为服务运行。该服务没有像用户那样看待事物。事实证明,Windows仅在USER级别安装网络驱动器。因此,根据SYSTEM,驱动器不存在。解决方法是使用UNC路径名。

我最初尝试过,但它没有工作,原因是因为该服务没有正确的权限。

感谢所有帮助过我的人。

http://wiki.apache.org/tomcat/FAQ/Windows#Q7

1

您是否在代码中使用相对路径来查找文件?代码在您的IDE或本地Tomcat中运行时,到达文件系统中文件的路径与在其他机器/环境中运行时很可能不是达到文件的路径。

最好的办法是彻底删除代码中的路径,然后从配置文件加载它们。

+0

我做到了,并重新配置服务器的配置文件,但是,因为它是一个网络驱动器,该文件位于两台机器在E盘。 – Austin 2010-06-09 20:55:32

0

你可以试试这个API的输出,以检查文件路径是你期待什么

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)

+0

请原谅我,如果这是一个愚蠢的问题,但我不断收到行this.getServletContext()的NullPointerException; 为什么这将是空? – Austin 2010-06-09 21:30:51

+0

也许你想检查这个链接 http://www.coderanch.com/t/360208/Servlets/java/getServletConfig-does-not-work – prashant 2010-06-10 13:43:57

+0

我得到它的工作,并且文件路径确实不是我所期待的。谢谢,现在来找出如何解决它! – Austin 2010-06-10 16:13:13