【问题标题】:Load and use fixture in grails console在 grails 控制台中加载和使用夹具
【发布时间】:2013-05-08 08:54:49
【问题描述】:

我通过 grails 控制台而不是 BootStrap 执行以下代码:

class BootStrap {
def fixtureLoader

    def init = { servletContext ->
        fixtureLoader.load("MockRecords")


    }

}

我收到以下错误:

java.lang.NullPointerException: Cannot invoke method load() on null object
    at Script1.run(Script1.groovy:16)
    at org.grails.plugins.console.ConsoleService.eval(ConsoleService.groovy:57)
    at org.grails.plugins.console.ConsoleService.eval(ConsoleService.groovy:37)
    at org.grails.plugins.console.ConsoleController$_closure2.doCall(ConsoleController.groovy:61)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
undefined

如何使用控制台加载灯具

【问题讨论】:

    标签: grails console fixtures


    【解决方案1】:

    更简单, 不使用 getBean:

    ctx.fixtureLoader.load("MockRecords")
    

    它有效。

    【讨论】:

      【解决方案2】:

      DI(依赖注入)通过模式 CoC 在 grails 中自动完成。

      因此,如果您复制/粘贴代码,控制台将不会注入依赖项。所以必须通过调用foctory ctx.getBean('')来手动注入

      def fixtureLoader=ctx.getBean('fixtureLoader');
      
      fixtureLoader.load("MockRecords")
      

      【讨论】:

        猜你喜欢
        • 2011-10-26
        • 2021-07-24
        • 2019-09-01
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 2019-10-29
        • 1970-01-01
        相关资源
        最近更新 更多