Получите ServletContext в Config.groovy (или как получить реальный путь текущего контекста) - PullRequest
1 голос
/ 17 сентября 2010

Вопрос в заголовке - как получить ServletContext в Config.groovy. Цель состоит в том, чтобы получить реальный (абсолютный) путь текущего контекста.

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Я сделал это в 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"
    ]
}
2 голосов
/ 17 сентября 2010

Невозможно получить ServletContext там.

Можно получить абсолютный путь через уродливый обходной путь:

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

(substring(1) удаляет ненужный начальный слеш)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...