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

Hibernate Java Discussion :

Catcher Erreur Connexion Hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut Catcher Erreur Connexion Hibernate
    Bonjour,

    Dans le cadre de mon stage, je doit réaliser une application en utilisant Hibernate. (je ne connais pas énormemment Hibernate).
    Tout fonctionne parfaitement, à part le fait que je n'arrive pas à prévenir l'utilisateur si la base de données est accessible ou non, si la base de données n'est pas accessible (ou l'url incorect) le programme se plante et Hibernate lance une exception... Le problème est que je ne vois pas du tout où je doit placer un bloc try catch pour récupérer une erreur de connexion

    Voici mon code HibernateUtil :

    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
    package util;
    import org.hibernate.*;
    import org.hibernate.service.*;
    import org.hibernate.cfg.Configuration;
     
    public class HibernateUtil {
    	private static SessionFactory sessionFactory;
    	private static ServiceRegistry serviceRegistry;
     
    	public static Session openSession(){
            if (sessionFactory == null)
            	configureSessionFactory();
            return sessionFactory.openSession();
    	}
     
    	 public static void close(Session session) {
    	        if (session != null) {
    	            try {
    	                session.close();
    	            } catch (HibernateException e) {
    	                e.printStackTrace();
    	            }
    	        }
    	    }
     
    	public static void rollback(Transaction tx) {
            try {
                if (tx != null) 
                    tx.rollback();
            } catch (HibernateException e) {
    			e.printStackTrace();}
        }
     
    	private static void configureSessionFactory(){
    		Configuration configuration = new Configuration();
    	    configuration.configure();
    	    configuration.getProperties();
    	    configuration.setProperty("hibernate.connection.url", PropertiesUtil.get(PropertiesUtil.HIBERNATE_URL));
    		configuration.setProperty("hibernate.connection.password", Crypto.decrypt(PropertiesUtil.get(PropertiesUtil.HIBERNATE_PASS)));
    	    configuration.setProperty("hibernate.connection.username", Crypto.decrypt(PropertiesUtil.get(PropertiesUtil.HIBERNATE_USERNAME)));
    	    serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
    	    sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    	}
     
    }

    Et voici comment je l'utilise :

    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
    	protected Session session;
    	protected Transaction transaction;
     
    	public Boolean saveOrUpdate(T obj){
    		try{
    			transaction = session.beginTransaction();
    			session.saveOrUpdate(obj);
    			transaction.commit();
    			return true;
    		}
    		catch(HibernateException  e){
    			HibernateUtil.rollback(transaction);
            	return false;
    		}
    		finally{
    			HibernateUtil.close(session);
    		}
    	}
    J'ai déjà lu plein de sujet sur ce forum, sur le forum Hibernate ..... J'y ai vu plein de solutions différentes, mais je n'ai jamais réussi à catcher l'exception.



    aidez moi SVP

  2. #2
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Où est-ce que tu appelles "openSession()" ? je pense que c'est sur cet appel qu'il faut faire un try catch

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut
    Oui pardon j'ai oublié un code.

    Le 2è code que j'ai mit c'est une classe abstraite

    et je l'utilise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	public Personne find(String id) {
    		session = HibernateUtil.openSession();
    		return (Personne)super.find(Personne.class, id);
    	}
    (super c'est le deuxième code que j'ai mit)

  4. #4
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Et tu as essayé de mettre un try/catch sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session = HibernateUtil.openSession();
    ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut
    Oui

    Je vient d'essayer de mettre un bloc try catch sur cette ligne mais rien du tout ... :'(

    j'obtient ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
     
    [......]
     
    Caused by: java.net.NoRouteToHostException: No route to host: connect

  6. #6
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Si tu analyse la trace de ton erreur (les [...] que tu n'as pas donné) il doit te dire d'où l'exception est lancée

    Analyse bien la trace ou donne la nous pour qu'on t'aide

Discussions similaires

  1. Réponses: 10
    Dernier message: 04/04/2006, 20h36
  2. [BO5.1.3][oracle9] Erreur connexion DA0005:1010
    Par ggnore dans le forum Oracle
    Réponses: 12
    Dernier message: 04/10/2005, 14h00
  3. Erreur connexion MySQL-PHP
    Par specialfox dans le forum Installation
    Réponses: 3
    Dernier message: 27/09/2005, 19h47
  4. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 17h16
  5. Erreur connexion mysql
    Par bodbod dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/07/2004, 09h28

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