2010-10-24 2 views
0

Je rencontre des problèmes lors de l'utilisation de l'injection de dépendances avec Services dans Grails.Problème d'injection de dépendances de Grails

class ExampleService{ 

    def example2Service 
    def example3Service 

    def method1(){ 
     def result = example2Service.method2() 
    } 

} 

class ExampleService{ 
    def example3Service 

    def method2(){ 

     def result = example3Service.method3() 
     return result 
    } 

} 

class Example3Service{ 

    def method3(){ 
     return true 
    } 

} 

En gros, dans Example2Service, je reçois un pointeur nul exception lorsque vous essayez d'appeler MÉTHODE3 en Example3Service.

Je vous serais reconnaissant toute aide que quelqu'un peut me donner cette question

grâce

+1

Avez-vous vérifié l'évidence: à savoir que le test3Service est nommé Test3Service et est un fichier nommé de façon appropriée? – hvgotcodes

+0

Oui, il est correctement nommé. Si je l'appelle depuis TestService cela fonctionne mais je dois pouvoir appeler la méthode depuis Test2Service – MTH

Répondre

1

injection de dépendances doit être initialisé. (De même pour d'autres types d'exécution programmation méta, comme augmenter les classes de domaine avec leurs méthodes save() et validate().)

Une application Grails sera initialisé lors

  • être exécuté à partir de la commande grails run-app
  • étant exécuté après avoir été déployé sur un serveur Web
  • étant exécuté à partir de la commande grails test-app (intégration tests, uniquement; unité tests ne déclenchent pas l'initialisation).

classes concernées sont pas initialisé lorsque

  • l'exécution d'un seul fichier Groovy (à savoir, en utilisant groovy, groovysh, ou groovyConsole)
  • ou lors de l'exécution d'un test unitaire .

Ce qui suit comme un test d'intégration devrait fonctionner:

class Test2ServiceTests extends GroovyTestCase { 
    def test2Service 

    void testMethod2() { 
     assert test2Service.method2() == true 
    } 
} 
+0

Je n'écris pas un test unitaire ou un test d'intégration. L'exemple du code est juste pour illustrer le problème que j'ai. – MTH

+0

Votre problème n'est probablement pas correctement isolé et votre question d'origine ne contient pas les informations requises. – robbbert

Questions connexes