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

Tomcat et TomEE Java Discussion :

[Hibernate][Tomcat] Configuration


Sujet :

Tomcat et TomEE Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [Hibernate][Tomcat] Configuration
    Bonjour,

    Pour le développement du modèle de mon application web, j'ai utilisé Hibernate. Pour l'appli web en elle même, j'ai utilisé Struts. Lorsque je lance mes tests avec JUnit sur le modèle, tout fonctionne à merveille avec Hibernate. En revanche dès que j'installe l'application sous Tomcat, c'est la galère !

    J'ai constamment cette erreur : java.lang.ExceptionInInitializerError. Après investigation j'ai découvert que le code plante à ce niveau : sessionFactory = new Configuration().configure() .buildSessionFactory(); Autrement, impossible de retrouver le fichier hibernate.cfg.xml.

    Comment permettre à Tomcat ou à Hibernate de retrouver ce fichier ?
    Faut-il paramétrer le web.xml et ajouter une servlet pour initialiser la config ? Quelle est la façon la plus simple de procéder ?

    Merci beaucoup pour votre aide !

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    il suffit de mettre le .hbm dans WEB-INF/classes

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci.

    Malheureusement, mon fichier hbm.xml est bien placé dans ce répertoire tout comme les autres fichiers de mapping. Le problème est donc légèrement différent : Je n'appelle pas le modèle à partir des servlets mais à partir des classes manageant le modèle. Exemple : si je veux manipuler des données portant sur un utilisateur, j'appele dans ma classe Action une classe UtilisateurManager qui se charge de la manipulation des données.

    J'ai bien trouvé le plugin HibernatePlugIn pour Struts mais j'ai l'impression que ça concerne l'utilisation d'hibernate directement à partir des servlets, ce qui n'est pas mon cas.

    Ais-je oublié un paramètre spécifique dans la solution que vous me proposez ? Sinon, y-a-t-il une solution pour initialiser le mapping hibernate sans passer par les servlets ?

    Merci.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    J'ai fini par trouver la solution : Il faut utiliser un plugin struts pour hibernate.

    J'ai simplifié le plugin par défaut dispo sur le site d'hibernate.

    Voici le code du plugin :
    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
     
    package utils;
    import java.net.URL;
     
    import javax.servlet.ServletException;
    import net.sf.hibernate.cfg.Configuration;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.action.PlugIn;
    import org.apache.struts.config.ModuleConfig;
     
    public class HibernatePlugIn implements PlugIn {
     
        private String configFilePath = "/hibernate.cfg.xml";
        private static URL configFileURL = null;
     
        public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
            Configuration configuration = null;
            try {
                configFileURL = HibernatePlugIn.class.getResource(configFilePath);
            } catch (Throwable t) {
                throw (new ServletException(t));
            }
        }
     
        public void destroy() {}
     
        public void setConfigFilePath(String configFilePath) {      
            this.configFilePath = configFilePath;
        }
     
        public static URL getConfigFileURL(){
            return configFileURL;
        }
     
    }

    Dans le struts-config.xml, il faut ajouter le noeud suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <plug-in className="utils.HibernatePlugIn">
    	<set-property property="configFilePath" value="/hibernate.cfg.xml"/>
    </plug-in>

    Enfin, pour appeler hibernate depuis Struts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
        // Crée la SessionFactory
        sessionFactory = new Configuration().configure(HibernatePlugIn.getConfigFileURL()).buildSessionFactory();            
    }catch (Exception ex) {
        System.out.println("Fichier de configuration Hibernate non trouve");
    }

    Voili voilou
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 15h58
  2. [Hibernate][Tomcat] Select sur tables
    Par parasol007 dans le forum Tomcat et TomEE
    Réponses: 15
    Dernier message: 12/05/2006, 14h01
  3. [TOMCAT]configurer TOMCAT pour exécuter un script ANT
    Par VysEDaKRe dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 10/04/2006, 11h58
  4. [Tomcat] configurer tomcat 4.1 pour rediriger la sortie
    Par dietrich dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 25/01/2006, 17h02
  5. [TOMCAT]Configuration connexion à MySQL
    Par Shiryu44 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 01/04/2005, 18h01

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