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 :

probleme avec spring transaction manager


Sujet :

Spring Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 219
    Points : 74
    Points
    74
    Par défaut probleme avec spring transaction manager
    Bonjour a tous, j'ai un grande problème de transaction manager dans mon unit Test et ça m’empêche d'avance

    java.lang.IllegalStateException: Failed to retrieve PlatformTransactionManager for @Transactional test for test context [DefaultTestContext@4524411f testClass = TripLogDAOTest, testInstance = com.odotrack.tripetl.trip.TripLogDAOTest@67b467e9, testMethod = findByIdTest@TripLogDAOTest, testException = [null], mergedContextConfiguration = [MergedContextConfiguration@401e7803 testClass = TripLogDAOTest, locations = '{classpath:applicationContextTest.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@63e2203c, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@1786dec2], contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]].
    at org.springframework.test.context.transaction.TransactionalTestExecutionListener.beforeTestMethod(TransactionalTestExecutionListener.java:194)
    at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:269)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:util="http://www.springframework.org/schema/util"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
                               http://www.springframework.org/schema/beans/spring-beans.xsd
                               http://www.springframework.org/schema/context
                               http://www.springframework.org/schema/context/spring-context.xsd
                               http://www.springframework.org/schema/tx
                               http://www.springframework.org/schema/tx/spring-tx.xsd
                               http://www.springframework.org/schema/util
                               http://www.springframework.org/schema/util/spring-util.xsd"
    	default-lazy-init="true">
     
    	<context:component-scan
    		base-package="com.odotrack.tripetl.trip" />
    	<tx:annotation-driven
    		transaction-manager="transactionManager" />
     
    		<bean
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="location"
    			value="classpath:application-local.properties"  />
    	</bean>
     
    	<bean id="transactionManager"
    		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="sessionFactory" ref="hibernateSessionFactory" />
    	</bean>
     
    	<bean id="dataSource"
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="org.h2.Driver" />
    		<property name="url"
    			value="jdbc:h2:mem:testdb;MODE=mysql;INIT=CREATE SCHEMA IF NOT EXISTS beta_odotrack\;RUNSCRIPT FROM 'classpath:create-db.sql'\;RUNSCRIPT FROM 'classpath:import.sql';DB_CLOSE_ON_EXIT=FALSE" />
    		<property name="username" value="sa" />
    		<property name="password" value="" />
    	</bean>
     
    	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"/>
        </bean>
     
    	<bean id="hibernateSessionFactory"
    		class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    		<property name="dataSource" ref="dataSource" />
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.show_sql">true</prop>
    				<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
    				<!--<prop key="hibernate.hbm2ddl.auto">create</prop> -->
    				<prop key="hibernate.hbm2ddl.auto">none</prop>
     
    				<prop key="hibernate.validator.apply_to_ddl">false</prop>
    				<prop key="hibernate.validator.autoregister_listeners">false</prop>
    			</props>
    		</property>
    	</bean>
    </beans>
    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
     
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.transaction.annotation.Transactional;
     
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "classpath:applicationContextTest.xml" })
     
    @Transactional
    public class DAOTest {
     
    	private DAO dao;
     
    	@Autowired
    	private JdbcTemplate jdbcTemplate;
     
    	@Test
    	public void findByIdTest() {
     
    		Entite tripLog = dao.findById(1l);
     
    	}
     
    	public void findProcessableTripLogsTest() {
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Repository("DAO")
    public interface DAO  extends CrudRepository<Entite, Long>{
    	@Modifying
    	@Query("UPDATE Entite SET fetched = 'Y' WHERE id = :id")	
    	public void markFetched(@Param("id") Long id);
              public Entite	findById(Long id);
    }
    Je suis complément bloqué . possible d'avoir de l aide svp merci d avance

  2. #2
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 219
    Points : 74
    Points
    74
    Par défaut
    J'ai utilise l'annotation @DataJpaTest de Spring date et tout va bien merci a tous

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

Discussions similaires

  1. probleme avec spring
    Par najoua86 dans le forum Spring
    Réponses: 7
    Dernier message: 27/02/2009, 11h22
  2. probleme avec Spring-config
    Par blach dans le forum Framework .NET
    Réponses: 0
    Dernier message: 03/02/2009, 20h38
  3. [Spring MVC] probleme avec <spring:bind>
    Par Widiwi dans le forum Spring Web
    Réponses: 3
    Dernier message: 03/07/2008, 11h04
  4. Réponses: 5
    Dernier message: 05/12/2006, 14h04
  5. [JDBC] probleme avec les transactions
    Par lthomas dans le forum JDBC
    Réponses: 2
    Dernier message: 17/06/2005, 17h10

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