user1552372
user1552372

Reputation: 111

Can't locate the file on local file system from Servlet

I wrote a RESTful web service using Jersey library and in order to respond to the request I have to read a text file in local file system. C:\data.txt. The servlet works fine when I run it with tomcat on my own laptop.

But when I deploy the war on another machine running windows server OS and place the data.txt again at C:\data.txt. The servlet can't locate the file correctly. Anyone has idea about why is this?

Thanks a lot!

Upvotes: 1

Views: 849

Answers (2)

DaShaun
DaShaun

Reputation: 3880

If you don't need to write to the file, consider moving its location inside of the classpath by putting in into $TOMCAT_HOME/lib instead.

I think this approach is also better in regards to being cross-platform.

Upvotes: 0

Juned Ahsan
Juned Ahsan

Reputation: 68715

Check whether the Tomcat server process has read-access rights to file C:\data.txt. Check which user is used for running the tomcat process and check the corresponding user file permissions.

I also suspect it is a security error. Applications are usually restricted to reading and writing within their own directory under $TOMCAT_HOME/webapps. If this is the case, you need to change $TOMCAT_HOME/conf/catalina.policy to allow you to access other directories.

Upvotes: 1

Related Questions