IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Configuration d'un service [Framework]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut Configuration d'un service
    Bonjour,

    je ne suis pas trop familier avec Spring, et j'essaie de mettre à jour les attributs d'un de mes services via Spring.

    J'ai donc un service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @Service("SmsService")
    public class SmsServiceImpl implements SmsService {
       @Override
       public void sendSms(String text) throws Exception {
          (...)
       }
     
       private String phone;
     
       public void setPhone(String phone) {
          this.phone = phone;
       }
    }
    J'ai dans mon applicationContext:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <bean id="smsService" class="[monPackage].SmsServiceImpl">
       <property name="phone"><value>06...</value></property>
    </bean>
    Et quand je lance un JUnit sur le service en question j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    org.springframework.beans.factory.BeanCreationException:
    Error creating bean with name 'test.SmsTest': Autowiring of fields failed;
    nested exception is org.springframework.beans.factory.BeanCreationException:
    Could not autowire field: [monPackage].SmsService test.SmsTest.smsService;
    nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
    No unique bean of type [[monPackage].SmsService] is defined:
    expected single matching bean but found 2: [SmsService, smsService]
    Et quand je change la casse d'un des deux SmsService, smsService j'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    expected at least 1 matching bean
    Quelqu'un saurait-il d'où ça vient et comment corriger ça ?

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Bon finalement j'ai réussi en supprimant l'annotation @Service de mon service, j'ai pas tout compris mais bon ça marche

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    normalement tu devrais définir un premier bean qui définit l'implémentation et ensuite une proxy interface pour celui ci

    un petit example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
    	<bean id="smsService"
    		class="com.package.application.services.impl.SmsServiceImpl">
    		<property name="smsDao" ref="mysmsDao" />
    	</bean>
     
    <bean id="mySmsDao" class="org.springframework.aop.framework.ProxyFactoryBean">
    		<property name="proxyInterfaces" value="com.ibm.arpa.dao.api.SmsDao" />
    		<property name="target" ref="SmsDao" />
    	</bean>

  4. #4
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    J'ai pas bien compris où tu voulais en venir
    Pour info mon service n'a rien à voir avec des Dao, il s'agit s'un service purement métier sans accès en base.

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Il faut soit définir le bean dans le XML, soit avec une annotation (genre @Service).
    Toi tu as fait les 2, donc tu as fini avec deux beans du même type avec les noms SmsService (via @) et smsService (via xml).

    Tu essaies ensuite d'injecter un SmsService dans un autre bean SmsTest.
    Spring lances alors une exception car il ne sait pas lequel des 2 utiliser.

  6. #6
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    oki c'est très clair, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Changer la configuration d'un service dynamiquement
    Par ShadowTheWolf dans le forum Symfony
    Réponses: 0
    Dernier message: 22/11/2012, 09h48
  2. Configuration de deux services WCF publiés par la même classe
    Par sovitec dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 09/03/2011, 15h37
  3. Configuration d'un service windows
    Par nicohutse dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/05/2010, 12h50
  4. configuration sharepoint pour service techninque
    Par joemaster dans le forum Configuration
    Réponses: 4
    Dernier message: 28/04/2010, 04h57
  5. Configuration des Shared Services (MOSS2007)
    Par Vincent Dieudonné dans le forum SharePoint
    Réponses: 0
    Dernier message: 19/09/2007, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo