2011-01-20 226 views
3

我有一個服務,叫做Mailer和控制器,它應使用此服務:Grails的依賴注入不起作用

class DocumentController { 

    def mailer 

    def publish = { 
     mailer.sendReport() 
    } 

} 

但是,當我打電話publish我得到:

java.lang.NullPointerException: Cannot invoke method sendReport() on null object 

爲什麼不在這裏進行依賴注入?

+0

您是否在日誌中看到您的服務有任何初始化問題?如果bean無法正確初始化,這是典型的症狀。 – Rhysyngsun 2011-01-20 19:52:16

回答

6

Grails是關於約定。我認爲郵件程序需要被稱爲mailerService。它需要位於服務目錄中。控制器需要位於控制器目錄中。

從文檔

「服務包含針對Grails應用程序,可重複使用的業務邏輯。在Grails的服務是,在約定結束一類‘服務’,住在的grails-app/services目錄。可以使用create-service命令創建服務:「

+0

謝謝!問題是班級名稱中缺少「服務」。 – deamon 2011-01-20 20:01:47