2

Grails 2.1 で作成したサービスに grailsApplication を注入する際に問題が発生しています。単一のコントローラー、ビュー、およびサービスで構成される単純なテスト アプリケーションを作成しました (この問題を把握し、修正を実際のアプリケーションに移植できることを願っています)。

コントローラーは次のようになります。

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 です。サービスに a を追加し、コントローラーからConfigObject渡して設定すると、正常に動作します。grailsApplication.getConfig()

ここで何が問題なのかを理解するために、誰かが私を正しい方向に向けることができますか?

ありがとうございました

4

1 に答える 1

3

IncidentServiceをresources.groovyに追加する必要はありません。そのサービスがgrails-app/servicesの下にある場合、それはあなたのために行われます。それを削除して、再試行してください。それがあなたの問題かもしれないと思います

于 2012-07-31T18:03:39.963 に答える