Bonjour,
Souhaitant gérer les transactions Hibernate grâce à Spring via un TransactionProxyFactoryBean, je bute sur un problème.
Lorsque je souhaite acquérir mon objet de la couche coordination qui est pris en charge par TransactionProxyFactoryBean. cf ci dessous
Une "java.lang.ClassCastException: $Proxy0" est levée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 E01ListeSalarieSrv lSrv = (E01ListeSalarieSrv)ApplicationContextHolder.getContext().getBean("E01ListeSalarieSrv");
E01ListeSalarieSrv est l'interface de mon service de coordination (classe abstraite).
E01ListeSalarieSrvImpl est l'implémentation, c'est ce que je suis censé récupérer.
Voici la déclaration de mon bean transactionnel.
Voici mon springHibernate.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <bean id="E01ListeSalarieSrv" parent="baseTransactionProxy" > <property name="target"> <bean name="E01ListeSalarieSrvTransactionTarget" class="com.renaud.salarie.presentation.web.coordination.E01.impl.E01ListeSalarieSrvImpl" /> </property> </bean>
J'ai farfouillé partout sur le net mais je ne trouve pas de solution. Merci d'avance !!
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 <beans> <!-- Déclaration de la DATASOURCES --> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${db.driver}" /> <property name="url" value="${db.url}" /> <property name="username" value="${db.username}" /> <property name="password" value="${db.password}" /> </bean> <!-- Déclaration Session Factory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="datasource" /> <property name="mappingResources"> <list> <value>hibernate/mapping.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.connection.pool_size">1</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">${db.show_sql}</prop> </props> </property> </bean> <!-- Hibernate Transaction Manager Definition --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- bean de base pour les transactions --> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager" /> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> </beans>
Partager