applicationContext в Config.groovy

возможен ли доступ к applicationContext в конфигурационном файле?!

Я пытаюсь получить полный путь (путь к серверу) для моего приложения!

В значительной степени я хочу:

/usr/tomcat/myapp/web-inf

person Arthur Neves    schedule 01.06.2011    source источник


Ответы (2)


Если решение @Ben getRealPath() не помогает, попробуйте собрать абсолютный путь на основе базового свойства каталины:

def path = System.getProperty("catalina.base") + 'relative/path/to/app'
person virtualeyes    schedule 03.06.2011

Возможно, я неправильно понял ваш вопрос, но я предполагаю, что вы пытаетесь получить URL-адрес своего веб-приложения, подобный этому: http://localhost:8080/myawesomeapp. Config.groovy имеет встроенную опцию grails. serverURL, но это не дает вам подконтекст веб-приложения. Результат будет http://localhost:8080. Я не знаю другого варианта, который также дал бы вам полный URL-адрес контекста веб-приложения.

В качестве альтернативы вы всегда можете использовать подобный метод в своем контроллере Grails, который даст вам полный URL-адрес веб-приложения:

def getContextUrl(HttpServletRequest httpServletRequest) {
    String scheme = httpServletRequest.scheme
    String serverName = httpServletRequest.serverName
    int serverPort = httpServletRequest.serverPort
    String contextPath = httpServletRequest.contextPath

    def url = new StringBuilder()
    url <<= '://'
    url <<= serverName

    if(serverPort && serverPort != 80) {
        url <<= ':'
        url <<= serverPort
    }

    url.toString()
}
person Benjamin Muschko    schedule 01.06.2011
comment
Для этого вы можете использовать javax.servlet.ServletContext.getRealPath(java.lang.String). - person Benjamin Muschko; 01.06.2011