Внешний доступ grails.serverURL недоступен из Config.groovy - PullRequest
0 голосов
/ 09 мая 2011

У меня есть приложение, в котором внешний конфиг.В Config.groovy я обновляю

grails.config.locations=[file:/.../myapp-log4j.groovy, file:/.../myapp-config.properties]

Это прекрасно работает для источников данных и тому подобного.Но позже в Config.groovy у меня есть:

springws {
    wsdl {
        MyApp {
            // In this case the wsdl will be available at    <grails.serverURL>/services/v1/myapp/myapp-v1.wsdl
            wsdlName= 'myapp-v1'
            xsds= '/WEB-INF/myapp.xsd'
            portTypeName = 'myappPort'
            serviceName = 'myappService'
            locationUri = "${grails.serverURL}/services/v1/myapp"
            targetNamespace = 'http://www..../myapp/v1/definitions'
        }
    }
}

И $ {grails.serverURL} содержит [:], чего нет в моем конфигурационном файле.Файл конфигурации содержит (среди деталей источника данных):

grails.serverURL=http://samiel:9011/xid

Я полагаю, что обновленный grails.config.locations используется только после того, как я вернусь из Config.groovy.

ИтакКаковы мои параметры для настройки сведений о моем веб-сервисе на основе внешнего сервераURL?

1 Ответ

1 голос
/ 12 мая 2011

Это то, что я получаю, когда запускаю ваш пример (просто подтверждаю ваше начальное положение):

def testExternalConfig() {
  println "grails.serverURL: ${ConfigurationHolder.config.grails.serverURL}"
  println "springws.wsdl.MyApp.locationUri ${ConfigurationHolder.config.springws.wsdl.MyApp.locationUri}"
}

--Output from testExternalConfig--
grails.serverURL: http://samiel:9011/xid
springws.wsdl.MyApp.locationUri http://localhost:8080/soGrails/services/v1/myapp

Как вы сказали, Config.groovy не видит значение, установленное во внешнем конфиге. Я считаю, что Grails обрабатывает внешние конфиги после Config.groovy, и этот тест, кажется, подтверждает это. Логика в том, что у вас скорее всего есть внешний конфигурационный файл значения, которые вы хотите иметь приоритет над config в файле war.

Исправлено переопределение полного свойства в myapp-config.properties:

.
grails.serverURL=http://samiel:9011/xid
springws.wsdl.MyApp.locationUri=http://samiel:9011/xid/services/v1/myapp

С этим изменением я получаю:

--Output from testExternalConfig--
grails.serverURL: http://samiel:9011/xid
springws.wsdl.MyApp.locationUri http://samiel:9011/xid/services/v1/myapp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...