检索相对于播放应用程序路径的文件



我创建了一个Play!应用程序,并将其部署在TomCat下。这很有效。唯一的问题是属性文件的管理,当前在conf文件夹中,紧挨着application.conf。但是一旦客户端替换了war文件,自定义属性就会被默认值覆盖,从而导致错误。

现在我想介绍一个单独的属性文件,放在webapps文件夹中。这样我就可以确保我的客户端不会"意外地"覆盖文件。

结构是:

TomCat webapps:
    myPlayApp
    PlayConfig <-- here I want to place the config file

我想通过如下方式检索属性文件:

getFile("../PlayConfig/app.properties");

这显然不工作,但我不知道如何实现这一点?我想通过tomcat http url检索它,但端口号不同,所以这也行不通,我猜…

更新2012-01-25:

实际使用以下代码时:

Play.applicationPath.getPath();

当在tomcat外运行项目时,我得到绝对路径(所以不是在war文件中!)

当我在TomCat服务器上部署相同的项目时,我得到以下输出:

W:tomcat-5.5webappsMyTestProjectWEB-INFapplication.

从现在开始我确实可以使用相对路径了

我认为当部署在Servlet容器中时,play使用/WEB-INF/application作为基目录。尝试更改相对于此文件夹的路径。

最新更新