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 :

Essais avec AbstractTransactionalDataSourceSpringContextTests


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Par défaut Essais avec AbstractTransactionalDataSourceSpringContextTests
    Salut tout le monde,

    Je vous remercierais si vous pouvez me dire qu'est ce qu il y a de mal dans mon code.
    Voila le test que je veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class BebidaDaoHibernateTest extends AbstractTransactionalDataSourceSpringContextTests  {
     
    	private Bebida bebida= null; 
    	private BebidaDao bebidaDao= null; 
     
    	public BebidaDaoHibernateTest() {		
    		this.setDependencyCheck(false);
    		this.setAutowireMode(AUTOWIRE_BY_NAME);
     
    	}
     
    	public void setBebidaDao(BebidaDao bebidaDao) {
    		this.bebidaDao = bebidaDao;
    	}
     
     
    	@Override
    	protected String[] getConfigLocations() {
     
    		return new String[]{"classpath*:src/main/resources/applicationContext*.xml"};
     
    	}
     
     
     
        public void testAltabebida() throws Exception {
            bebida = new Bebida();
            bebida.setIdtipobebida(1);        
            bebida.setAlcoholica(true);
            bebida.setIdcategoriaalimento(1);
            bebida.setIdproveedor(2);
            bebida.setNombrebebida("tequila");
            bebida.setNombrebodega("sur");
     
     
            this.bebidaDao.altaBebida(bebida);
            Assert.assertNotNull("primary key assigned", bebida.getId());
     
        }
    }
    Voila ce qu'il y dans mon fichier de configuration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <!-- DAO Definition: Hibernate implementation -->
    	<bean id="bebidaDao" class="com.bonetechnology.geo.dao.hibernate.BebidaDaoHibernate">
    		<property name="hibernateTemplate">
    			<ref bean="hibernateTemplate"/>
    		</property>
    	</bean>


    Pour le code en java j'ai essaye d'obtenir bebidaDao avec Depency of Injection et d'autre part avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     /**
    //         * Overridden method from base class which gets called automatically
    //         */
    //	  protected void onSetUpBeforeTransaction() throws Exception {
    //	      super.onSetUpBeforeTransaction();	 	      	      
    //	      this.bebidaDao = (BebidaDao) applicationContext.getBean("bebidaDao");	      
    //	  }
    Et je trouve l'erreur suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'bebidaDao' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans []; Root of BeanFactory hierarchy
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:242)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:498)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:143)
    	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:399)
    	at com.bonetechnology.geo.dao.hibernate.BebidaDaoHibernateTest.onSetUpBeforeTransaction(BebidaDaoHibernateTest.java:46)
    	at org.springframework.test.AbstractTransactionalSpringContextTests.onSetUp(AbstractTransactionalSpringContextTests.java:102)
    	at org.springframework.test.AbstractDependencyInjectionSpringContextTests.setUp(AbstractDependencyInjectionSpringContextTests.java:192)
    	at junit.framework.TestCase.runBare(TestCase.java:125)
    	at junit.framework.TestResult$1.protect(TestResult.java:106)

  2. #2
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Salut ^^
    Dans ta methode onSetupBeforeTransaction :

    AbstractApplicationContext appContext = new FileSystemXmlApplicationContext("/chemin/vers/fichier/de/conf.xml");
    BebidaDao bebidaDao = (BebidaDao) appContext.getBean("bebidaDao");

  3. #3
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Citation Envoyé par JoloKossovar Voir le message
    Salut ^^
    Dans ta methode onSetupBeforeTransaction :

    AbstractApplicationContext appContext = new FileSystemXmlApplicationContext("/chemin/vers/fichier/de/conf.xml");
    BebidaDao bebidaDao = (BebidaDao) appContext.getBean("bebidaDao");
    Faux. L'applicationContext est gérer par la classe AbstractTransactionalDataSourceSpringContextTests, il lui suffit de redéfinir getConfigLocations pour configurer celui-ci. Or, cela est fait.

    Maintenant, le "chemin" me parait bizarre :
    classpath*:src/main/resources/applicationContext*.xml"
    classpath: => spécifie une ressource DANS le classpath. Or je doute qu'il existe une package com.main.ressources ;-)

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Override
    	protected String[] getConfigLocations() {
     
    		return new String[]{"classpath*:applicationContext*.xml"};
     
    	}
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  4. #4
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    L'applicationContext est gérer par la classe AbstractTransactionalDataSourceSpringContextTests
    Ok je n'en savais rien ^\\^

Discussions similaires

  1. Essais avec fail2ban
    Par troumad dans le forum Sécurité
    Réponses: 5
    Dernier message: 21/11/2020, 23h17
  2. [Framework] Premier essaie avec Spring: echec :( !
    Par jlassiramzy dans le forum Spring
    Réponses: 2
    Dernier message: 01/07/2010, 22h08
  3. [BulletPhysics] Essai avec BSP
    Par eltran dans le forum Bullet
    Réponses: 1
    Dernier message: 07/04/2008, 21h19
  4. essai avec TreeView
    Par aurel_D dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2008, 15h45
  5. Mon 1er essai avec WAMP
    Par kagura dans le forum Langage
    Réponses: 21
    Dernier message: 30/06/2006, 19h16

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