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 :

Initialisation de spring [Integration]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Par défaut Initialisation de spring
    Bonjour à tous!!

    Alors voici mon problème, je commence à développer une application utilisant spring et hibernate (ainsi que tapestry mais c'est une autre histoire ^^) et j'ai quelques problèmes pour initialiser ma session :

    Voici tout d'abord les fichiers de configs hibernate & spring :

    config hibernate :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
     
        	<!-- Configuration de la connexion à la base de données -->
     
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.password">root</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/applira</property>
            <property name="hibernate.connection.username"></property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
     
        	  <!-- Print SQL to stdout, format it nicely  -->
     
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <property name="use_sql_comments">true</property>
            <property name="use_scrollable_resultset">true</property>
     
     
        	<!-- Mapping des modèles avec la table -->
     
        	<mapping class="com.applira.domain.model.Batch"/>
        	<mapping class="com.applira.domain.model.BatchMsg"/>
        	<mapping class="com.applira.domain.model.Bornes"/>
        	<mapping class="com.applira.domain.model.Instances"/>
        	<mapping class="com.applira.domain.model.IsoMsg"/>
        	<mapping class="com.applira.domain.model.Serveurs"/>
        	<mapping class="com.applira.domain.model.TypeIso"/>
        	<mapping class="com.applira.domain.model.User"/>
     
        </session-factory>
    </hibernate-configuration>
    config spring :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <!-- Application context DAO layer -->
     
    <beans>
    <!--
    		========================= Start of PERSISTENCE DEFINITIONS =========================
    	-->	
    	<!-- Hibernate sessionFactory definition  -->
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="configLocation">
    			<value>classpath:hibernate.cfg.xml</value>
    		</property>
    		<property  name="configurationClass">
      			 <value>org.hibernate.cfg.AnnotationConfiguration</value>
    		</property>
    	</bean>
     
    		<!-- Hibernate Transaction Manager Definition -->
    	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
     
    		<!--
    		========================= Start of DAO DEFINITIONS =========================
    	-->
    		<!-- proxy for DAO using generic DAO -->
    	<bean id="proxyDAO" abstract="true">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
     
    	<!-- userDao definition -->
    	<bean id="userDao" class="com.applira.dao.common.impl.UserDaoImpl" parent="proxyDAO">
    		<constructor-arg value="com.applira.domain.model.User" />
    	</bean>
     
     
    	<!--
    	    ========================= Start of SERVICE DEFINITIONS =========================
    	-->
    	<!-- Transactional proxy for Services -->
    	<bean id="proxyService" abstract="true"
    		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="transactionManager" ref="transactionManager" />
    		<property name="transactionAttributes">
    			<props>
    				<prop key="find*">PROPAGATION_REQUIRED, readOnly</prop>
    				<prop key="get*">PROPAGATION_REQUIRED, readOnly</prop>
    				<prop key="*">PROPAGATION_REQUIRED, -java.lang.Exception</prop>
    			</props>
    		</property>
    	</bean>
     
    </beans>
    Sachant qu'il ne s'agit pas d'une application web donc pas de web.xml (je compte faire une appli web plus tard en incluant un jar de la présente application ^^)

    Et j'utilise pour les DAO une classe générique contenant les méthodes utiles :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    package com.applira.dao.common.Impl;
     
    import com.applira.dao.common.GenericDao;
     
    import java.io.Serializable;
    import java.lang.reflect.ParameterizedType;
    import java.util.List;
     
    import org.hibernate.Criteria;
    import org.hibernate.LockMode;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.criterion.Criterion;
    import org.hibernate.criterion.Example;
    import org.springframework.orm.hibernate3.SessionFactoryUtils;
     
     
     
     
    public abstract class GenericDaoImpl<T, ID extends Serializable>
    		implements GenericDao<T, ID> {
     
    	private Class<T> persistentClass;
     
    	private SessionFactory sessionFactory;
     
    	@SuppressWarnings("unchecked")
    	public GenericDaoImpl() {
    		this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
    				.getGenericSuperclass()).getActualTypeArguments()[0];
    	}
     
    	public void setSession(SessionFactory s) {
    		this.sessionFactory = s;
    	}
     
    	protected Session getSession() {
    		boolean allowCreate = true;
            return SessionFactoryUtils.getSession(sessionFactory, allowCreate);
     
    	}
     
    	public Class<T> getPersistentClass() {
    		return persistentClass;
    	}
     
     
    	@SuppressWarnings("unchecked")
    	public T findById(ID id, boolean lock) {
    		T entity;
    		if (lock)
    			entity = (T) getSession().get(getPersistentClass(), id,
    					LockMode.UPGRADE);
    		else
    			entity = (T) getSession().get(getPersistentClass(), id);
     
    		return entity;
    	}
     
     
    	public List<T> findAll() {
    		return findByCriteria();
    	}
     
     
    	@SuppressWarnings("unchecked")
    	public List<T> findByExample(T exampleInstance, String... excludeProperty) {
    		Criteria crit = getSession().createCriteria(getPersistentClass());
    		Example example = Example.create(exampleInstance);
    		for (String exclude : excludeProperty) {
    			example.excludeProperty(exclude);
    		}
    		crit.add(example);
    		return crit.list();
    	}
     
     
    	public T makePersistent(T entity) {
    		getSession().saveOrUpdate(entity);
    		return entity;
    	}
     
     
    	public void makeTransient(T entity) {
    		getSession().delete(entity);
    	}
     
     
    	public void flush() {
    		getSession().flush();
    	}
     
     
    	public void clear() {
    		getSession().clear();
    	}
     
    	/**
             * Use this inside subclasses as a convenience method.
             */
    	@SuppressWarnings("unchecked")
    	protected List<T> findByCriteria(Criterion... criterion) {
    		Criteria crit = getSession().createCriteria(getPersistentClass());
    		for (Criterion c : criterion) {
    			crit.add(c);
    		}
    		return crit.list();
    	}
     
    }
    Et la classe UserDaoImpl sur laquelle je me base pour lancer un test :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    /**
     * 
     */
    package com.applira.dao.common.Impl;
     
    import org.hibernate.Criteria;
    import org.hibernate.criterion.Restrictions;
    import org.springframework.dao.DataAccessException;
    import org.apache.log4j.Logger;
    import com.applira.dao.common.UserDao;
    import com.applira.domain.model.User;
     
     
     
     
    /**
     * @author moi
     *
     */
     
    public class UserDaoImpl extends GenericDaoImpl <User, Long> implements UserDao {
     
     
    	private static Logger logger = Logger.getLogger(UserDaoImpl.class);
    	public boolean checkLogin(String nomUser, String pwd) {
    		try {
     
    			logger.info("Check user with login: "+nomUser+" and password : [PROTECTED]");
    			Criteria crit = getSession().createCriteria(User.class);
    			if (nomUser != null){
     
    				crit.add(Restrictions.ilike("nomUser", nomUser));
    			}
    			crit.add(Restrictions.eq("pwd", pwd));
     
    			User user = (User)crit.uniqueResult();
    			return (user != null);
    		}
    		catch(DataAccessException e) {
    			// Critical errors : database unreachable, etc.
    			logger.error("Exception - DataAccessException occurs : "+e.getMessage()
    					+" on complete checkLogin().");
    			return false;
    		}
    	}
     
     
     
     
    }
    Le problème est que lorsque je lance un test sur checkLogin (je vais voir en base si un user existe et que le mdp est bien celui attendu).. j'obtient ceci :

    -------------------------------------------------------------------------------
    Test set: com.atosworldine.effia.applira.common.test.UserDaoImplTest
    -------------------------------------------------------------------------------
    Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.157 sec <<< FAILURE!
    testCheckLogin(com.applira.common.test.UserDaoImplTest) Time elapsed: 0.125 sec <<< ERROR!
    java.lang.IllegalArgumentException: No SessionFactory specified
    at org.springframework.util.Assert.notNull(Assert.java:112)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:283)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:202)
    at com.applira.dao.common.Impl.GenericDaoImpl.getSession(GenericDaoImpl.java:39)
    at com.applira.dao.common.Impl.UserDaoImpl.checkLogin(UserDaoImpl.java:31)
    at com.applira.common.test.UserDaoImplTest.testCheckLogin(UserDaoImplTest.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
    Sachant que j'utilise maven et junit pour ma classe de test...

    Le problème est que je ne sais pas si cela vient :
    - De l'initialisation de spring
    - De ma classe de test (ou tout du moins si lors de la commande mvn test le contexte est bien intialisé)
    - De ma classe genericDaoImpl

    Voili voilou, a vos claviers!!! Et merci d'avance de toute réponse

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut l'ami !

    Tu peux nous montrer ta classe de test ?
    Le reste a l'air bon

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Par défaut
    Bonjour!! désolé de la lenteur de la réponse, weekend de fête oblige

    Alors voici donc la classe de tests :

    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
    package com.applira.common.test;
     
    import static org.junit.Assert.*;
     
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
     
    import com.applira.dao.common.Impl.UserDaoImpl;
     
    public class UserDaoImplTest {
     
     
    	static ApplicationContext context;
     
    	protected void setUp() throws Exception {
    	context = new ClassPathXmlApplicationContext("applicationContextDao.xml");
     
    	}
    	@Test
    	public void testCheckLogin() {
     
     
    		UserDaoImpl user = new UserDaoImpl();
    		assertTrue(user.checkLogin("pouet", "prout"));
    	}
     
    }
    Peut être est-ce le fichier applicationcontext.xml qui est mal placé... Je l'ai pourtant mis dans les ressources (src/main/ressources et src/test/ressources pour les tests)

    Merci en tout cas de s'intéresser à mon cas ^^

  4. #4
    Membre expérimenté Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Par défaut
    bonjour,

    tu dois faire quelques chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserDao userDao = (UserDao) context.getBean("userDao")
    sinon ça ne marchera pas c'est parceque tu es entrain d'injecter ton session dans ton doa donc avec un new tu ne crée que le dao et non sa dépendance

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Par défaut
    Bonjour,

    tout d'abord merci de ta réponse, après réflexion ça doit provenir de ça, j'ais donc modifier mon test en rajoutant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserDaoImpl user = (UserDaoImpl) context.getBean("userDao");
    à la place de mon new UserDaoImpl.

    J'arrive lors du lancement du test à une nouvelle exception (un NullPointerException pour être précis) au niveau de la ligne que j'ai rajouté.

    Est-il possible que cela provienne de l'initialisation de mon contexte?

    Edit : Cela vient en effet de l'initialisation de mon contexte... la méthode setUp ne s'éxécutait pas, après avoir rajouté l'annotation @Before avant celle ci l'application charge maintenant le applicationContextdao.xml... mais je me retrouve encore avec des exceptions :

    -------------------------------------------------------------------------------
    Test set: com.applira.common.test.UserDaoImplTest
    -------------------------------------------------------------------------------
    Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.907 sec <<< FAILURE!
    testCheckLogin(com.applira.common.test.UserDaoImplTest) Time elapsed: 0.859 sec <<< ERROR!
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContextDao.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.applira.common.test.UserDaoImplTest.setUp(UserDaoImplTest.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
    at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
    ... 40 more
    Caused by: java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
    at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.class$(LocalSessionFactoryBean.java:174)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.<init>(LocalSessionFactoryBean.java:174)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
    ... 42 more


  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut !

    En effet, quand tu utilises Junit4 avec les annotations, il faut y aller jusqu'au bout

    Ton problème m'a l'air d'être un bug de slf4j.
    Tu utilises quelle version ?
    Tu peux essayer avec une version plus récente de slf4j ?

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

Discussions similaires

  1. [Framework] Exception à l'initialisation de spring
    Par chahrazedd dans le forum Spring
    Réponses: 2
    Dernier message: 22/07/2011, 00h40
  2. probleme avec l'initialisation de spring
    Par bousnguar dans le forum Spring
    Réponses: 4
    Dernier message: 19/08/2008, 12h59
  3. Initialisation JPA par Spring
    Par Alwin dans le forum JPA
    Réponses: 3
    Dernier message: 05/12/2007, 14h48
  4. [RCP] Initialisation Spring Client Riche
    Par tatemilio2 dans le forum Spring
    Réponses: 1
    Dernier message: 19/09/2006, 08h52
  5. [Hibernate][Spring] Session Hibernate initialisée
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/08/2005, 13h07

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