Grails:无法在null对象上调用方法production()

时间:2014-05-23 19:05:05

标签: grails nullpointerexception

以下是我的Config.groovy环境部分(使用2.3.6):

grails.app.context = "/"

environments {
    development {
        grails.logging.jul.usebridge = true
        grails.serverURL = "http://localhost:8080"
    } production {
        grails.logging.jul.usebridge = false
        grails.serverURL = "http://myapp.example.io"  // Although this isn't my production domain, it is a *.io TLD
    }
}

当我做grails -Dgrails.env=development run-app时,我得到:

  

|打包应用程序时出错错误:加载错误Config.groovy:无法在null对象上调用方法production()(使用--stacktrace查看完整跟踪)

这里发生了什么?

1 个答案:

答案 0 :(得分:3)

在新行中使用production DSL。如果在开发结束时在同一行中使用它,那么它将被视为对带有闭包参数的development调用的返回类型(无效)的新方法调用。方法名称为production,如:

development(clos1).production(clos2)

VERSUS

development(closure)
production(closure)

因此请将其用作:

environments {
    development {
        grails.logging.jul.usebridge = true
        grails.serverURL = "http://localhost:8080"
    } 
    production {
        grails.logging.jul.usebridge = false
        grails.serverURL = "http://myapp.example.io"
    }
}

此外,您不需要为run-app指定环境development,默认环境是开发,因此只需grails run-app即可。