grails - 无法从Config.groovy访问外部化的grails.serverURL

标签 grails groovy

我有一个配置被外部化的应用程序。在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

我的猜测是,仅当我从Config.groovy返回后才使用更新的grails.config.locations。

那么,根据外部化的serverURL设置Web服务详细信息有哪些选择?

最佳答案

这是我运行示例时得到的结果(只需确认您的开始位置):

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之后进行配置,该测试似乎可以确认这一点。逻辑是您可能具有外部配置文件
您想要优先于war文件中的config的值。

解决方法是覆盖myapp-config.properties中的full属性:
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

关于grails - 无法从Config.groovy访问外部化的grails.serverURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5935543/

相关文章:

spring - Grails-使用Spring Security插件通过UI登录时如何使用JWT

grails spring 安全角色和组

hibernate - 麻烦将参数绑定(bind)到对象并成功保存()

groovy - 尝试使用 JIRA Scriptrunner 自定义 REST 端点时出现 404

grails - Groovy脚本到Grails应用

grails - GORM 批量获取和更新

java - 如何将 jasperreports 子报表与 grails jasper 插件一起使用?

android - 在gradle build脚本中调用程序之前,如何检查程序是否在PATH上?

groovy - 在groovy中,有没有办法检查对象是否具有给定的方法?

chalice : Generating PDF from GSP