Según transcurra el curso, si fuera necesario colgaré ejemplos e información adicional que espero os resulten útiles.
Si deseáis plantear cualquier pregunta después de que el curso acabe por favor enviad un mensaje a éste foro de discusión.
Yo personalmente, o alguno de los compañeros que ya se han apuntado al mismo, os responderán lo antes posible.
Duración del curso: 32 horas
Horario: de lunes a jueves, de 15.30 a 19.30
Asistentes: quince personas
Tratamiento de excepciones en Spring MVC
Documentación sobre persistencia
Soporte para Spring en algunos IDEs
Enlaces a información adicional
Descargas
Software opcional
Google App Engine
- Soporte para Spring 2.5.6
- Soporte para Java
- Soporte para Grails (I)
- Soporte para Grails (II)
- Soporte para Groovy
Scripting
5 comentarios:
Hola,
Estoy teniendo un problema con la gestión de transacciones en el proyecto en que trabajo (es un proyecto de mantenimiento)
He definido para una clase de la capa de negocio lo siguiente:
PROPAGATION_REQUIRED,-DAOException
PROPAGATION_REQUIRED,-DAOException
PROPAGATION_REQUIRED,-DAOException
PROPAGATION_NEVER
PROPAGATION_REQUIRED,readOnly
La capa DAO utiliza el mismo transactionManager y lanza excepciones de tipo DAOException.
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,readOnly
DAOException es una clase que hereda de Exception, pero cuando se produce una de ellas en alguno de estos metodos de la clase de LN no se está realizando el rollback de la transacción. ¿Hay algo mal en la configuración?
Perdón, que no se ve bien la configuración es la siguiente para la capa de servicios
<bean id="txCargaDatos" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref bean="servicioCargaDatos" />
</property>
<property name="transactionAttributes">
<props>
<prop key="borrar*">PROPAGATION_REQUIRED,-DAOException</prop>
<prop key="cargar*">PROPAGATION_REQUIRED,-Throwable</prop>
<prop key="recargar*">PROPAGATION_REQUIRED,-DAOException</prop>
<prop key="comprobar*">PROPAGATION_NEVER</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
y para el dao
<bean id="genericDAO" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="target">
<ref local="genericDAOTarget" />
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
el manejador de transacciones:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
Hola. Spring sólo hace rollback por defecto si la excepción que se lanza es una RuntimeException. Así que haz tu excepción descendiente de esta clase, o bien en la configuración de transacciones emplea el atributo rollback-for de la etiqueta tx:method, subordinada a la etiqueta tx:advice.
Si asististe a mi curso, en el archivo txContext.xml del ejemplo SpringDaoJdbc puedes verlo.
Espero que esto te sea útil.
José Mª
Hola,
Si asistí al curso de spring. En el proyecto en el que estoy trabajando tenemos como requisito la jdk 1.4 con lo que no puedo usar las anotaciones.
En el libro del curso y en la documentación de spring, había entendido que al poner el "-MyCheckedException" en los atributos el gestor, también hace rollback cuando se lanza la excepción MyChekedException.
El ejemplo del que te hablo no usa anotaciones. Sólo requiere el espacio de nombres "tx", incluido en spring 2.x
Publicar un comentario