2013-05-08 40 views
0

我EXCUTE通過Grails的下面的代碼安慰,而不是自舉:負載和使用夾具

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 

如何使用控制檯加載夾具

回答

2

更容易, 不使用的getBean:

ctx.fixtureLoader.load("MockRecords") 

它的工作原理。

0

DI(依賴注入)通過模式CoC在grails中自動完成。

因此,如果您複製/粘貼代碼,控制檯將不會注入依賴項。因此,必須通過調用foctory ctx.getBean( '')手動注入

def fixtureLoader=ctx.getBean('fixtureLoader'); 

fixtureLoader.load("MockRecords")