获取Config.groovy中的ServletContext(或如何获取当前上下文的真实路径)

时间:2010-09-17 08:56:37

标签: grails

问题出在标题中 - 如何获取ServletContext中的Config.groovy。目的是获得当前上下文的真实(绝对)路径。

2 个答案:

答案 0 :(得分:2)

无法获得ServletContext

可以通过一个丑陋的解决方法获得绝对路径:

def path = getClass().getProtectionDomain().getCodeSource().getLocation()
    .getFile().replace(getClass().getSimpleName() + ".class", "").substring(1);

substring(1)删除不必要的前导斜杠)

答案 1 :(得分:2)

我在Config.groovy

中这样做了
def path = getClass().getProtectionDomain().getCodeSource().getLocation().getFile().replace("/WEB-INF/classes/" + getClass().getSimpleName() + ".class", "").substring(1);
path = path.substring(path.lastIndexOf("/") + 1)

println "path: $path ${path}"

def env = System.getenv()
if (!env['ISP_CONFIG']) {
    System.err.println 'Environment variable EXTERNAL_CONFIG_DIR is not set.'
} else {
    grails.config.locations = [
        "file:${env['EXTERNAL_CONFIG_DIR']}/grails/${path}/grails-config.groovy",
        "file:${env['EXTERNAL_CONFIG_DIR']}/grails/${path}/DataSource.groovy"
    ]
}