我通过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
如何使用控制台加载灯具
答案 0 :(得分:2)
更简单, 不使用getBean:
ctx.fixtureLoader.load("MockRecords")
它有效。
答案 1 :(得分:0)
DI(依赖注入)通过模式CoC在grails中自动完成。
因此,如果您复制/粘贴代码,控制台将不会注入依赖项。所以必须通过调用foctory ctx.getBean手动注入('')
def fixtureLoader=ctx.getBean('fixtureLoader');
fixtureLoader.load("MockRecords")