【问题标题】:Accessing config.groovy variables from Quartz Job从 Quartz Job 访问 config.groovy 变量
【发布时间】:2014-12-18 09:36:21
【问题描述】:

这是grails-app/conf/Config.groovy 我试图从中访问 Quartz Job 中的变量。这是我试图在下面的石英作业中访问的变量:

ais.mediquery.TrialVariable="My Variable";

石英作业:

import com.projectname.*;

import org.codehaus.groovy.grails.commons.GrailsApplication;

import grails.util.Holders
class TrialJob {

    GrailsApplication grailsApplication;

    static triggers = {

      simple repeatInterval: 10000l // execute job once in 5 seconds

    }

    def execute() {
        //log.info(grailsApplication.ais.mediquery.TrialVariable)
        println (Holders.config.ais.mediquery.TrialVariable)
    }
}

我尝试过同时使用 GrailsApplication 和 ais.mediquery.TrialVariable 但他们似乎都没有访问变量并打印它们

【问题讨论】:

  • 您的代码看起来不错。你有什么错误吗?你在哪里定义了你的配置值?产品?开发者?您运行 grails 应用程序的环境是什么?
  • 如果是 grailsApplication,我认为应该是 grailsApplication.config.ais...
  • 嗨 Lalit 它正在 localhost:8080 上运行,嗨 abdullah 我确实尝试过 grailsApplication.config.ais.mediquery.TrialVariable。它没有给出任何错误,但它不会从配置中打印这些变量。
  • 假设您在开发环境中运行您的应用程序,您能否检查您的配置变量是否定义正确,即在开发中{ your-config-variable }

标签: grails configuration-files


【解决方案1】:

配置绝对可以从GrailsApplication 获得,这是最好的选择:

println grailsApplication.config.ais.mediquery.TrialVariable

如果这似乎不起作用,请尝试打印整个配置并查看是否有错字:

println grailsApplication.config

println grailsApplication.config.flatten()

对于任何看似奇怪的行为,运行 grails cleangrails compile 以强制进行干净编译。

【讨论】:

  • 我做了 grails clean 和 grails compile 并且它现在可以工作了 :) 谢谢..可能是依赖项没有得到刷新
  • 我可以访问字符串变量,但如果我尝试访问数据结构..例如来自 config.groovy 的列表或映射,它会给我一个空的初始化映射或列表?
猜你喜欢
  • 1970-01-01
  • 2011-11-15
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多