1
問題出在標題 - 如何獲得Config.groovy
中的ServletContext
。目的是獲取當前上下文的真實(絕對)路徑。獲取Config.groovy中的ServletContext(或如何獲取當前上下文的真實路徑)
問題出在標題 - 如何獲得Config.groovy
中的ServletContext
。目的是獲取當前上下文的真實(絕對)路徑。獲取Config.groovy中的ServletContext(或如何獲取當前上下文的真實路徑)
不可能在那裏得到ServletContext
。
有可能通過一個醜陋的解決方法,以獲取絕對路徑:
def path = getClass().getProtectionDomain().getCodeSource().getLocation()
.getFile().replace(getClass().getSimpleName() + ".class", "").substring(1);
(該substring(1)
刪除不必要的斜線)
我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"
]
}