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

Wildfly/JBoss Java Discussion :

[hibernate] comment integrer hibernate dans JBoss


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut [hibernate] comment integrer hibernate dans JBoss
    salut
    ma question est simple : comment on peut integrer hibernate dans un le serveur JBoss pour assurer une communication entre ejbsession (utilisant la methode session d'hibernate) et hibernate
    est ce qu'on aura besoin de parametrer d'autres fichiers si oui lequels ??

  2. #2
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    normalement hibernate est integre dans jboss

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    je vais epliquer mieux ma question
    j'ai crée un projet dans le quel j'implémente hibernate
    don ce projet contient :
    fichier de configuration hibernate: hibernate.cfg.xml
    fihier de mapping
    classes javabean: contient getters/setters
    classe : 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
    ....................
    private static final SessionFactory sessionFactory;
    	static {
    		try {
    			sessionFactory =new Configuration().configure().buildSessionFactory();
    		} catch (HibernateException ex) {
    			throw new RuntimeException("Problème de configuration : "+ ex.getMessage(), ex);
    		}
    	}
    	public static final ThreadLocal session = new ThreadLocal();
    	public static Session currentSession()throws HibernateException {
    		Session s = (Session) session.get();
    		// Ouvre une nouvelle Session, si ce Thread n'en a aucune
    		if (s == null) {
    			s = sessionFactory.openSession();
    			session.set(s);
    		}
    		return s;
    	}
    	public static void closeSession()throws HibernateException {
    		Session s = (Session) session.get();
    		session.set(null);
    		if (s != null)
    			s.close();
    		}
    ............
    apres je crée un projet ejb (session) qui contient une interface Xx.java
    et une classe XxBean.java, dans cette classe j'appelle la classe hibernateUtil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .........
    public void ajouter(String rue, String ville) throws HibernateException {
    		Session session = HibernateUtil.currentSession();
    		Transaction tx = session.beginTransaction();
     
    		Adresse adresse = new Adresse();
    		adresse.setRue(rue);
    		adresse.setVille(ville);
    		session.save(adresse);
     
    		tx.commit();
    		HibernateUtil.closeSession();
    ........
    je deploi l'ejb dans le serveur Jboss
    apres je crée un projet java qui contient une classe de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Test {
     
    	public static void main(String[] args) throws HibernateException {
    		try {
    			Context context = new InitialContext();
    			Xx adr = (Xx)context.lookup("XxBean/remote");
    			adr.ajouter("rue","ville");
    		}catch (NamingException e) {
    			e.printStackTrace();
    		}
     
       }
    }
    quand j'execute je recoi l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" javax.ejb.EJBException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/cdvm/dao/HibernateUtil
    il ne reconnait pas la classe Hibernate , pourtant j'ai ajouté le projet dans le build path, j'ai fait les import
    c pour cela que je demande comment on configure hibernate dans Jboss pour qu'il soit accecible aux ejb session qui implementent le metier

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ce n'est pas Hibernate qu'il ne trouve pas c'est ta classe à toi ...

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    il ne trouve pas la classe HibernateUtil
    voila le code de cette classe:
    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
    ....................
    private static final SessionFactory sessionFactory;
    	static {
    		try {
    			sessionFactory =new Configuration().configure().buildSessionFactory();
    		} catch (HibernateException ex) {
    			throw new RuntimeException("Problème de configuration : "+ ex.getMessage(), ex);
    		}
    	}
    	public static final ThreadLocal session = new ThreadLocal();
    	public static Session currentSession()throws HibernateException {
    		Session s = (Session) session.get();
    		// Ouvre une nouvelle Session, si ce Thread n'en a aucune
    		if (s == null) {
    			s = sessionFactory.openSession();
    			session.set(s);
    		}
    		return s;
    	}
    	public static void closeSession()throws HibernateException {
    		Session s = (Session) session.get();
    		session.set(null);
    		if (s != null)
    			s.close();
    		}
    ............
    j'utilise cette classe dans les ejb Session qui contient des methodes d'ajout et de suppresion
    et lorsque je deploi les ejb et je teste avec un client je recoi l'erreur ke j'ai montré
    je me suis documenté ladessus et j'ai vu que je dois configurer le fichier hibernate.cfg.xml de facon qu'il prenne en charge le servuer d'application Jboss .
    seulement j'arrive pas ale configurer
    ca fait maintenant 2 jours que je suis bloqué
    j'attend vos reponses avec impatience

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Points : 146
    Points
    146
    Par défaut
    c'est bizarre j'utilise hibernate et jboss, mais je n'ai jamais configurer hibernate pour qu'il prenne en charge jboss mais plutot pour configurer l'acces a la base via un pool ou une datasource.
    Va vers ton risque, à te regarder ils s'habitueront.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    voila le fichier de configuration hibernate.cfg.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
     
    <hibernate-configuration>
    	<session-factory>
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">
    			jdbc:jtds:sqlserver://127.0.0.1:1444/mabase
    		</property>
    		<property name="hibernate.connection.driver_class">
    			net.sourceforge.jtds.jdbc.Driver
    		</property>
    		<property name="hibernate.connection.username">user</property>
    		<property name="hibernate.connection.password">password</property>
    		<!-- property name="hibernate.connection.pool_size"></property -->
    		<!-- dialect for Microsoft SQL Server -->
    		<property name="dialect">
    			net.sf.hibernate.dialect.SQLServerDialect
    		</property>
    		<property name="hibernate.show_sql">false</property>
    		<property name="hibernate.use_outer_join">true</property>
    		<property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JBOSSTransactionFactory</property>
    		<property name="jta.UserTransaction">java:comp/UserTransaction</property>
    		//-->
    		<mapping resource="com/cdvm/dao/Adresse.hbm" />
    	</session-factory>
    </hibernate-configuration>
    mais la j'ai une question : est ce que je dois implementer toutes les couches dans le meme projet java ( sous des packages) ou je peux implementer chaque couche dans un projet a part et faire la liaison apres ??
    en fait ce que j'ai fait c'est creer un projet java qui implemente la couche DAO
    ensuite je crée des projets ejb pour implementer les ejb
    ces EJB doivent normalement communiquer avec la premiere couche :
    et ce que j'ai fait quelque chose de faux ??

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Il faut déployer ta classe HibernateUtil sur ton serveur d'application pour que tes ejbs puissent l'utiliser.

    Tu n'as pas spécialement besoin de configurer JBoss pour qu'il utilise Hibernate. Tu peux éventuellement paramétrer le manageur transactionnel, mais ce n'est pas obligatoire.
    Il te faut juste ton driver jdbc.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    Il faut déployer ta classe HibernateUtil sur ton serveur d'application
    la classe HibernateUtil est dans le couche DAO
    donc est ce que je deploi seulement la classe ?? ou dois-je deployer toute la couche DAO dans le serveur ??
    une autre question plutot bête : comment pourrais-je deployer un projet java ( je parle d'une façon genrale ) dans le serveur d'application ???

  10. #10
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Je te conseille de relire ; http://docs.jboss.org/jbossas/gettin...hibernate.html

    et sans doute ceci : http://wiki.jboss.org/wiki/Wiki.jsp?...BossHibernate3

    comme points de départ

  11. #11
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Il te faut déployer tout ce qui est nécessaire à ta couche ejb.
    Donc je suppose ta couche dao.

  12. #12
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    merci, je vais prendre du temps a lire la doc (meme si je suis nul en anglais )

Discussions similaires

  1. Comment integrer IE dans une JFrame ?
    Par imenisg dans le forum Débuter
    Réponses: 4
    Dernier message: 19/04/2010, 01h09
  2. Comment integrer struts a jboss sous eclipse?
    Par jlassiramzy dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 16/05/2009, 01h08
  3. CMS+SWF? : comment integrer SWF dans CMS
    Par kalakrima dans le forum Intégration
    Réponses: 0
    Dernier message: 21/04/2008, 15h32
  4. [hibernate][ejb] integrer hibernate a Jboss
    Par apoca dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 09/05/2007, 17h07
  5. Comment integrer Java dans Flash?
    Par ox@na dans le forum Flash
    Réponses: 4
    Dernier message: 28/12/2006, 12h06

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