Java Servlet说文件不存在

时间:2010-06-09 20:47:13

标签: java windows tomcat network-programming

我开发了一个java servlet,它监视网络驱动器上的文件夹以获取新文件,然后对它们执行一些操作,具体取决于它是什么类型的文件。当Eclipse和Tomcat相互运行时,它在Eclipse中工作,但现在我已将它部署到服务器(不同的机器)上,servlet会记录它无法找到要映射的文件夹。映射完全相同的网络驱动器,文件夹肯定存在。只有在服务器上运行servlet时才会出现此问题,而不是在开发计算机上运行。

谢谢!

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我终于明白了。

事实证明,当Tomcat运行时(显然)正在作为服务运行。该服务看不到与用户相同的方式。事实证明,Windows仅在用户级别安装网络驱动器。因此,根据SYSTEM,驱动器不存在。解决方法是使用UNC路径名。

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

感谢所有帮助过我的人。

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

答案 2 :(得分:0)

您可以尝试输出此API以检查文件路径是否符合您的预期

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