2013-04-18 59 views
0

但是,我已經創建了自定義事件偵聽器,它擴展了AbstractPersistenceEventListener,如Grails文檔http://grails.org/doc/latest/guide/GORM.html中所述,它工作正常。如果執行如下操作,我無法在此偵聽器中注入Service。無法在src/groovy中注入grails應用上下文

def context = ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT) 
def myService = context.myService 

'context'返回null。

任何想法可能是什麼問題。謝謝 p.s. GRails 2.1.2

+0

上下文返回null或上下文爲空? – 2013-04-18 12:31:34

+0

對不起,我的英文。上下文爲null或ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT)返回null – latvian 2013-04-18 13:00:58

回答

1

當您註冊時,將applicationContext傳入您的Listener作爲構造函數參數。

+0

謝謝託德。我很困惑一點點...在這麼多魔術:)而不是參數,我保持構造函數的原樣並在註冊事件之前啓動後分配服務。 – latvian 2013-04-19 02:02:27

+0

DEF doWithApplicationContext = {的applicationContext - > application.mainContext.eventTriggeringInterceptor.datastores.each {K,數據存儲 - > DEF cacheListener =新CacheListener(數據存儲) cacheListener.nodeDriverProxyService = applicationContext.nodeDriverProxyService applicationContext.addApplicationListener cacheListener – latvian 2013-04-19 02:02:52

+0

我們手動注入服務 - nodeDriverProxyService ... – latvian 2013-04-19 02:05:35

相關問題