【问题标题】:Can't locate the file on local file system from Servlet无法从 Servlet 找到本地文件系统上的文件
【发布时间】:2013-05-19 02:37:53
【问题描述】:

我使用 Jersey 库编写了一个 RESTful Web 服务,为了响应请求,我必须读取本地文件系统中的文本文件。 C:\data.txt。当我在自己的笔记本电脑上使用 tomcat 运行 servlet 时,它运行良好。

但是当我在另一台运行 windows 服务器操作系统的机器上部署战争并将 data.txt 再次放置在 C:\data.txt 时。 servlet 无法正确定位文件。有人知道这是为什么吗?

非常感谢!

【问题讨论】:

  • 检查你得到了什么异常?很可能您/tomcat 应用程序无法访问 Windows 服务器机器上的 c:\ ..

标签: java rest tomcat servlets


【解决方案1】:

检查 Tomcat 服务器进程是否对文件 C:\data.txt 具有读取权限。查看运行tomcat进程使用的是哪个用户,查看对应的用户文件权限。

我也怀疑这是一个安全错误。应用程序通常只能在 $TOMCAT_HOME/webapps 下自己的目录中进行读写。如果是这种情况,您需要更改 $TOMCAT_HOME/conf/catalina.policy 以允许您访问其他目录。

【讨论】:

  • @user1552372 检查 catalina.policy 中的安全性,如决议中所述
【解决方案2】:

如果您不需要写入文件,请考虑将其位置移动到类路径内,将其放入 $TOMCAT_HOME/lib 中。

我认为这种方法在跨平台方面也更好。

【讨论】:

    猜你喜欢
    • 2012-05-30
    • 2013-06-03
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多