如何调整tomcat应用程序使用的文件(log,sqlite数据库)的路径/权限?

时间:2012-09-26 21:40:19

标签: java tomcat6

修改:我重新提问,以包含最新发现并删除已修复的问题。

我正在开发之前由同事创建的servlet应用程序myapp。 我在Debian下开发和运行它,我使用的Tomcat服务器是版本6.

在此应用程序中,使用了三个文件:

myapp-database.db - sqlite file, if is is not present application creates it
myapp-log.xml - log file, it is opened/created by the application
myapp-config.xml - configuration files, included in /usr/main/resources

如果我在我的主目录中安装的Eclipse-inner-Tomcat上运行它, 文件:myapp-database.dbmyapp-log.xml直接在我的主目录中创建。

如果我将应用程序部署到与aptitude一起安装的系统Tomcat,则此文件存在问题。 它显示在catalina.out

Error while initialising logger: mylog.xml
java.io.IOException: Couldn't get lock for mylog.xml

...

SEVERE: couldn't initialize database:
    opening db: 'mydb.db': Permission denied

java.sql.SQLException: opening db: 'mydb.db': Permission denied

...

我像这样部署应用程序:

sudo cp myapp.war /var/lib/tomcat6/webapps/

然后我无法打开系统Tomcat。如果我从webapps删除该应用,则表示没问题。

我在光盘上的某个地方创建了目录,并将所有者更改为tomcat。 我将代码中的文件名更改为绝对路径,以便在目录中创建它们。 Tomcat打开并且没有崩溃,文件是在那里创建的。

这是处理这个问题的正常方法吗? 完全在tomcat之外创建应用程序文件? 我认为这会降低应用程序的可移植性/安装难度。

也许我应该将文件放在/usr/main/resources中,就像myapp-config.xml一样正常? 但我真的不确定如何让路径指向他们呢? 我也不喜欢这个解决方案,因为应用程序应该创建文件,如果它们不存在。

0 个答案:

没有答案