问题出在标题中 - 如何获取ServletContext
中的Config.groovy
。目的是获得当前上下文的真实(绝对)路径。
答案 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"
]
}