无法将圣杯应用程序注入服务



我在将grailsApplication注入我在Grails 2.1中创建的服务时遇到问题。我已经构建了一个简单的测试应用程序(希望我能解决这个问题,然后将修复程序移植到我的实际应用程序),它由一个控制器、视图和服务组成。

控制器看起来像这样:

class IncidentController {
    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
    def incidentService
    def index() {
        incidentService.serviceMethod()
        redirect(action: "list", params: params)
    }
    // Other stuff
}

我的服务简单地包括:

class IncidentService {
def grailsApplication
    def serviceMethod() {
        System.out.println("Grails application: " + grailsApplication)
    }
}

我声明在我的resources.groovy中注入IncidentService如下:

beans = {
    incidentService(org.myorg.test.IncidentService)
}

现在,我在网上读到的所有内容都表明,这应该可以正常工作,我应该能够通过服务中的grailsApplication访问我的配置。然而,grailsApplication在任何时候都是null。如果我向服务添加一个ConfigObject,并通过从控制器传递grailsApplication.getConfig()来设置它,它就可以正常工作。

有人能给我指一个正确的方向,让我弄清楚这里的问题是什么吗?

感谢

您不应该将IncidentService添加到resources.groovy中。如果该服务在grails app/services下,它将为您完成。请删除它,然后重试。我认为这可能是你的问题

最新更新