我使用 Jersey 库编写了一个 RESTful Web 服务,为了响应请求,我必须读取本地文件系统中的文本文件。C:\data.txt。当我在自己的笔记本电脑上使用 tomcat 运行 servlet 时,它运行良好。
但是当我在另一台运行 windows 服务器操作系统的机器上部署战争并将 data.txt 再次放在 C:\data.txt 时。servlet 无法正确定位文件。任何人都知道这是为什么?
非常感谢!
检查Tomcat服务器进程是否对文件C:\data.txt有读权限。查看运行tomcat进程的用户,查看对应的用户文件权限。
我也怀疑这是一个安全错误。应用程序通常只能在 $TOMCAT_HOME/webapps 下自己的目录中进行读写。如果是这种情况,您需要更改 $TOMCAT_HOME/conf/catalina.policy 以允许您访问其他目录。
如果您不需要写入文件,请考虑通过将其放入 $TOMCAT_HOME/lib 来将其位置移动到类路径内。
我认为这种方法在跨平台方面也更好。