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