我有一个生产环境和测试环境。产品有 win2k3+tomcat 6.0+ 和网络驱动器映射到一个驱动器号以便于访问(z:\app 而不是\symba\files\app)。我的测试环境有 windows xp(所有软件都是相同的,包括 servlet 的源代码)并且测试也有相同的驱动器号映射到网络驱动器。
Tomcat 在两个系统中使用相同的用户 ID 运行,并且能够在测试 m/c 和生产 m/c 中通过 Windows 资源管理器访问该文件。
现在,如果尝试访问现有文件(可通过 Windows 资源管理器访问),windows xp m/c(测试 m/c)中的 servlet 会抛出文件未找到异常。生产环境中的 servlet 与测试环境中的相同,当我请求文件时,生产 servlet 会愉快地提供文件,并且不会抛出任何错误。
我看到一些帖子说使用驱动器号不是一个好主意,应该改用 UNC 路径,但我还没有尝试过。我想知道测试 servlet 无法获取文件而生产 servlet 工作正常的原因。
非常感谢您的时间和帮助 博
最佳答案
您是否将应用服务器作为服务运行?仅当您使用交互式程序而不是服务时,驱动器号分配才是可靠的。
几年前,我试图解决一个完全相同的问题,但最后我放弃了,我使用了 JCIFS访问文件。
关于java - Servlet 在访问网络驱动器时抛出文件未找到 excp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3778954/