Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ApplicationContext в Config.groovy

Автор вопроса: Arthur NevesОтветов: 2

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

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

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

/usr/tomcat/myapp/web-inf

grailsconfiggroovy

Ответы

Ответ 1 · рейтинг 1 · virtualeyes

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

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

Ответ 2 · Benjamin Muschko

Возможно, я неправильно понял ваш вопрос, но я предполагаю, что вы пытаетесь получить 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()
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы