Utiliser ses propres Exceptions avec Blazeds-Spring-Hibernate
Bonjour
j'ai une application utilisant Blazeds, Spring et Hibernate côté serveur
je voudrais catcher les exceptions de Hibernate et envoyer mes propres exceptions et les récupérer côté client pour pouvoir gérer les exceptions mais le problème c'est que Spring catche mes exceptions et envoie les siens du coup je ne peux plus récupérer mes exceptions.
Par exemple quand un utilisateur s'inscrit à l'application, à la création du nouveau compte utilisateur Hibernate va envoyer une NonUniqueObjectException que je récupère et j'envoie mon exception
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@Transactional
public void createUser(UtilisateurVO user, int droit) throws Exception {
try {
utilisateurDAO.createUser(user);
moduleDAO.setPrivileges(user, droit);
}
catch(NonUniqueObjectException e)
{
e.printStackTrace();
throw new RuntimeException("login non unique");
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
private function createUserFault(e:FaultEvent):void
{
button.enabled = true;
ro.getOperation("createUser").removeEventListener(ResultEvent.RESULT, createUserResult);
ro.getOperation("createUser").removeEventListener(FaultEvent.FAULT, createUserFault);
var errorMessage:ErrorMessage = e.message as ErrorMessage;
switch(errorMessage.rootCause.message)
{
case 'login non unique': Alert.show("le login que vous avez choisis est reservé, veuillez choisir un autre login"); break;
}
trace(errorMessage.rootCause.message);
trace(errorMessage.rootCause.rootCause.message); |
le message que je voie à la console n'est pas le message de mon exception mais c'est celui de l'exception de Spring
Citation:
JPA transaction unexpectedly rolled back (maybe marked rollback-only after a failed operation); nested exception is javax.persistence.RollbackException: Error while commiting the transaction
Error while commiting the transaction
pour l'intégration de Spring et Blazeds j'utilise la technique su SpringFactory décrite dans ce tutorial : http://fponchel.developpez.com/tutor...lazeds-spring/
Voilà je crois que le problème est clair, quelqu'un aurait une solution ?