2013-05-08 2 views
0

은 내가 Grails를 통해 다음과 같은 코드 대신 부트 스트랩의 콘솔 excute에 :로드 및 사용기구는

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
더 쉽게

, foctory ctx.getBean를 ('')를 호출하여 수동으로 주입해야합니다

ctx.fixtureLoader.load("MockRecords") 

가 작동합니다.

0

DI (종속성 주입)은 패턴 CoC를 통해 grails에서 자동으로 수행됩니다.

코드를 복사/붙여 넣으면 콘솔에서 종속성을 주입하지 않습니다. 그래서이의 getBean을 사용하지 않고

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

fixtureLoader.load("MockRecords")