2011-01-20 6 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

答えて

6

Grailsはすべて約束です。私は、メーラーがmailerServiceと呼ばれる必要があると思う。それはservicesディレクトリにある必要があります。コントローラーはcontrollersディレクトリーになければなりません。ドキュメント

から

「サービスは、Grailsのアプリケーション全体で再利用できるビジネスロジックが含まれています。Grailsのではサービスが慣例で終わるクラスである 『サービス』とGrailsアプリに住んでいます/ servicesディレクトリサービスを作成するには、create-serviceコマンドを使用します: "

+0

ありがとう!問題は、クラス名に「サービス」がないことでした。 – deamon