Przykład niestandardowego detektora zdarzeń w dokumentacji Grails

Próbuję dodać niestandardową klasę nasłuchiwania zdarzeń GORMBootstrap.groovy, jak opisano wDokumentacja Grails ale to nie działa dla mnie. Oto kod prosto z dokumentów:

def init = {
    application.mainContext.eventTriggeringInterceptor.datastores.each { k, datastore ->
        applicationContext.addApplicationListener new MyPersistenceListener(datastore)
    }
}

Gdy go uruchomię, kompilator skarży się, że aplikacja i applicationContext są puste. Próbowałem dodać je jako członków poziomu klasy, ale nie zostały one magicznie połączone w stylu usług. Najbliższy jak dotąd jest:

def grailsApplication
def init = { servletContext ->
    def applicationContext = servletContext.getAttribute(ApplicationAttributes.APPLICATION_CONTEXT)
    grailsApplication.mainContext.eventTriggeringInterceptor.datastores.each { k, datastore ->
        applicationContext.addApplicationListener new GormEventListener(datastore)
    }
}

Ale wciąż mam błędy:java.lang.NullPointerException: Cannot get property 'datastores' on null object.

Dziękuje za przeczytanie...

EDYCJA: wersja 2.2.1

questionAnswers(3)

yourAnswerToTheQuestion