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 Web Java Discussion :

Gestion des exceptions avec Spring


Sujet :

Spring Web Java

  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut Gestion des exceptions avec Spring
    Bonjour,

    Je d�veloppe en Spring Rest et je souhaiterai remonter les exceptions dans un flux json pour pouvoir ensuite les remonter � mon clients.
    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
    Controller REST:
     
    @RequestMapping(value = "/utilisateur/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<List<Utilisateur>> listerUtilisateur() throws ListerUtilisateurException, Exception{
    return ResponseEntity.status(HttpStatus.OK).body(utilisateurServiceWebService.listerUtilisateur());
    }
     
    Service:
    public List<Utilisateur> listerUtilisateur() throws ListerUtilisateurException, Exception{
    List<Utilisateur> listeUtilisateurs = null;
    try{
    List<UtilisateurEntitie> listeUtilisateursEntitie = utilisateurDao.listerUtilisateur();
    listeUtilisateurs = new ArrayList<Utilisateur>();
    for(UtilisateurEntitie unUtilisateur : listeUtilisateursEntitie){
    Utilisateur utilisateur = new Utilisateur();
    utilisateur.setId(unUtilisateur.getIdentifiant());
    utilisateur.setNom(unUtilisateur.getNom());
    utilisateur.setPrenom(unUtilisateur.getPrenom());
     
    listeUtilisateurs.add(utilisateur);
    }
    }catch(CannotCreateTransactionException e){
    System.out.println(e.getMessage());
    throw new ListerUtilisateurException("Erreur d'accès à la base de données !");
    }
     
    return listeUtilisateurs;
    }
     
    DAO:
    @SuppressWarnings("unchecked")
    public List<UtilisateurEntitie> listerUtilisateur() throws ListerUtilisateurException, Exception{
    List<UtilisateurEntitie> listeUtilisateurs = null;
     
    try{
    listeUtilisateurs = (List<UtilisateurEntitie>)sessionFactory.getCurrentSession().createQuery("from UtilisateurEntitie").list();
    }
    catch(HibernateException e){
    throw new ListerUtilisateurException("Aucun utilisateurs trouvé !");
    }
    catch(Exception e){
    throw new ListerUtilisateurException("Erreur grave !");
    }
     
    return listeUtilisateurs;
    }
    Par exemple, si l'exception indique "Aucune utilisateurs trouv� !", je souhaiterais remonter sa au client mais je vois pas comment faire. On m'a parler des exceptions handler

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut
    Probl�me r�solu!
    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
    /**
    * @return ResponseEntity<List<Utilisateur>>
    * @throws ListerUtilisateurException
    * @throws Exception
    */
    @RequestMapping(value = "/utilisateur/", method = RequestMethod.GET, produces={"application/json; charset=UTF-8"})
    public ResponseEntity<List<Utilisateur>> listerUtilisateur() throws ListerUtilisateurException, Exception {
    return ResponseEntity.status(HttpStatus.OK).body(utilisateurServiceWebService.listerUtilisateur());
    }
     
    @ExceptionHandler(ListerUtilisateurException.class)
    public ResponseEntity<ErreurReponse> listerUtilisateurException(Exception ex) {
    ErreurReponse erreur = new ErreurReponse();
    erreur.setErrorCode(HttpStatus.NOT_FOUND.value());
    erreur.setMessage(ex.getMessage());
    return new ResponseEntity<ErreurReponse>(erreur, HttpStatus.OK);
    }

  3. #3
    Mod�rateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    D�cembre 2011
    Messages
    1 326
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Analyste Programmeur

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par d�faut
    Bonjour,

    Tu peux aussi utiliser un @ControllerAdvice pour regrouper tes exceptions, peux-tu indenter les codes que tu copie/colle s'il te plait ?

    Cordialement,
    N'h�sitez pas � consulter la FAQ Java, lire les cours et tutoriels Java, et � poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  4. #4
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @ControllerAdvice
    public class ExceptionControllerAdvice {
    	@ExceptionHandler(Exception.class)
    	public ResponseEntity<ErreurReponse> exceptionHandler(Exception ex) {
    		ErreurReponse erreur = new ErreurReponse();
    		erreur.setErrorCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
    		erreur.setMessage(ex.getMessage());
    		return new ResponseEntity<ErreurReponse>(erreur, HttpStatus.OK);
    	}
    }
    Ce type de controller ne contient que une seule m�thode pour toutes mon application pour g�rer toutes les exception si je comprend bien?
    Et j'ai mi en code erreur, un type 500, c'est correct pour g�rer toutes les erreurs en g�n�ral?

  5. #5
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut
    Je souhaite remonter le contenu de ma requ�te rest � mon client.
    Mais comment faire car il doit soit r�cup�rer ma liste utilisateur soit mon exception

  6. #6
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut spring �change rest
    Bonjour,

    Je d�veloppe une application Spring avec �change Rest et lorsque mon service rest retourne une exception, je souhaiterais r�cup�rer le contenu de celle-ci

    Voil� mon controleur advice c�t� rest
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @ControllerAdvice
    public class ExceptionRestControllerAdvice {
    	@ExceptionHandler(Exception.class)
    	public ResponseEntity<ErreurReponse> exceptionHandler(Exception ex) {
    		ErreurReponse erreur = new ErreurReponse();
    		erreur.setErrorCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
    		erreur.setMessage(ex.getMessage());
    		return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(erreur);
    	}
    }
    Et ma m�thode qui appel un service rest
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        	HttpHeaders headers = new HttpHeaders();
        	headers.setContentType(MediaType.APPLICATION_JSON);
        	HttpEntity<String> entity = new HttpEntity<String>(headers);
        	ResponseEntity<String> responseEntity = null;
     
            RestTemplate restTemplate = new RestTemplate();  
            try{
            	responseEntity = restTemplate.exchange(url+"monUrl/", HttpMethod.GET, entity, String.class);
            }
            catch(HttpStatusCodeException e){
                System.out.println("Reponse : "+responseEntity.getStatusCode() + " - " + responseEntity.getBody());
            }
    Je souhaiterai r�cup�rer dans le catch le code erreur et le body pour le convertir en objet ErreurReponse pour r�cup�rer l'erreur pr�cise
    Sauf que quand il y a une exception, le responseEntity reste � null

  7. #7
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut
    Finalement, j'ai r�ussi � faire ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
            	final HttpStatusCodeException httpException = (HttpStatusCodeException) e;
                final ObjectMapper mapper = new ObjectMapper();
                ErreurReponse erreur = null;
    			try {
    				erreur = mapper.readValue(httpException.getResponseBodyAsString(), ErreurReponse.class);
    			} catch (IOException e1) {
    	            throw new ListerUtilisateurException("Impossible de convertir le flux json");
    			}
    Mais j'arrive pas � la remont� � ma jsp. Actuellement, cela se trouve dans la couche service

  8. #8
    Membre �prouv�
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par d�faut
    Probl�me r�solu

Discussions similaires

  1. [Data] gestion des transactions avec Spring Probleme
    Par mouvma dans le forum Spring
    R�ponses: 2
    Dernier message: 02/04/2008, 20h39
  2. Gestion des exceptions avec le plugin ErrorHandler ?
    Par AzAt0th dans le forum Zend Framework
    R�ponses: 7
    Dernier message: 07/01/2008, 14h31
  3. [POO] Gestion des exception avec php4
    Par mulot49 dans le forum Langage
    R�ponses: 1
    Dernier message: 26/04/2007, 10h18
  4. R�ponses: 2
    Dernier message: 01/12/2006, 19h55
  5. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 05/12/2005, 22h41

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