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

Autres Java Discussion :

Problème de déploiement à cause d'Hibernate


Sujet :

Autres Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut Problème de déploiement à cause d'Hibernate
    Bonjour, le problème que j'ai ce matin l'un des plus déconcertant que j'ai rencontré.

    j'utilise Hibernate couplé à JPA depuis longtemps.
    je viens de demarrer un nouveau projet et je souhaite garder l'architecture gagnate. EJB3- JPA- Hibernate.

    le problème déconcertant comme je l'ai précisé tout haut est qu'au déploiement j'ai des erreurs qui me semblent lié à mes distributions hibernate. J'ai retélécharger plusieurs fois les librairies hibernate sur sourceforge et sur même sur d'autre site ou les distribution sont disponible.
    mais dès que je déploie mon projet, j'ai toujours des erreurs figé et différentes en fonction de la version d'hibernate que j'introduit.
    la dernière erreur que j'obtient est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WARN: HHH000427: Using deprecated org.hibernate.transaction.TransactionManagerLookup strategy [hibernate.transaction.manager_lookup_class], use newer org.hibernate.service.jta.platform.spi.JtaPlatform strategy instead [hibernate.transaction.jta.platform]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SEVERE: Exception while preparing the app : tried to access field org.hibernate.engine.spi.CascadeStyle.STYLES from class org.hibernate.ejb.engine.spi.EJB3CascadeStyle
    avec hibernate 4.2
    si le problème est lié à mes jars, où puis-jes trouver les bons jars? sinon, quel est la cause possible?

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    personne n'a n'est informé sur le pb?

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Quel est le serveur d'applications cible ?
    Hibernate est-il embarqué dans l'application ou la version du serveur est-elle utilisée ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    Merci pour ton attention. le serveur cible est glassfish 3 et j'ai aussi essayer avec la version 4. mes librerie hibernate se trouve dans le classpath de mon application. j'utilise netbeans dans ses versions 7.1.2, 7.2, 7.3.
    la remarque que j'ai faite est que le problème survient lorsque j'injecte mon contexte de persistence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @PersistenceContext(unitName = "PU")
        private static Session session;
    ou avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @PersistenceContext(unitName = "PU")
        private static EntityManager em;
    ou encore avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("PU");
    et lorsque je change les jars d'hibernate pour inclure ceux de la version 3.x dans mon classpath, j'ai une autre erreur.
    je n'arrive pas vraiment à comprendre ce qui ne vas pas et encore moins ce que je dois faire!

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    C'est très probablement un des jars que tu embarques dans ton application qui n'est pas compatible avec la version d'hibernate que tu utilises.
    Est-ce que tu utilises directement la couche hibernate ou passes-tu par JPA ?
    Si tu passes par la couche JPA à mon humble avis c'est casse gueule d'utiliser hibernate car l'implémentation de JPA fournie par glassfish est EclipseLink, pas Hibernate.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    Merci encore, ton analyse me semble logique. mais vue que j'ai déjà réalisé des applications entière avec la même architecture, (JPA-Hibernate-Glassfish) je veux espérer qu'il existe bien une solution à ce problème; Car tout comme EclipseLink, hibernate est une implémentation de JPA et je ne veux pas me passer de la richesse des fonctionnalités fournit par hibernate et de la simplicité de JPA aussi, mettre les deux ensemble n'est pour moi un aussi casse-tête comme tu peut le croire.
    l'implémentation de JPA fournie par glassfish est EclipseLink, pas Hibernate.
    certainement. faut-il donc ajouter ou enlever quelque chose à glassfish pour qu'il utilise hibernate?

    et si comme tu le dis, le problème vient d'un des jars inclu dans mon classpath, comment savoir lequel?

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Je ne sais pas si cela peut t'aider mais voilà les librairies qu'utilise le serveur JBoss EAP 6.1 dont hibernate est l'implémentation JPA:

    hibernate-core-4.2.0.Final
    hibernate-entitymanager-4.2.0.Final
    hibernate-commons-annotations-4.0.1
    hibernate-envers-4.2.0.Final
    hibernate-validator-4.3.1.Final
    hibernate-infinispan-4.2.0.Final

    Une autre piste pourrait être la configuration du contexte de persistence, quelle tête a ton fichier persistence.xml ?

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    voici mon fichier persistence.xml à la base de mon projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="PU" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>harmonieDs</jta-data-source>
        <class>com.entity.Entity1</class>
         <class>...</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
      </persistence-unit>
    </persistence>

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Par défaut
    Salut,

    Essaye de rajouter ca dans ton persistence.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" />
    Pour moi ça à marcher, mais j'ai une erreur ensuite avec l'injection de l'entity manager et en fouillant un peu visiblement c'est la version d'hibernate 4.2.x qui est compliant JPA 2.0 (EE6) alors que Glassfish 4 est compliant JPA 2.1 (EE7).

    https://hibernate.atlassian.net/browse/HHH-8308

    Si ça marche pour toi, tiens moi au courant. Pour ma part je vais surement me tourner vers eclipse link pour le moment même si j'aurai préféré utilisé hibernate

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut toujours pas de solutions
    Quelle est le nom de cette nouvelle propriété? de toute les façon ça ne résout pas le problème. je ayant essayer plusieurs version d'Hibernate et même de Glassfish, j'ai toujours eu des problèmes. pas (pas identique biensure, mais toujours du genre NoClassFound....). Bien que je refuse de l'admettre, je suis las de ce problème. Toutefois, j'ai la certitude que le problème vient soit d'une mauvaise configuration du persistence.xml, soit d'une incompatibilité entre les jar d'hibernate et ceux de glassfish.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.getEventListeners()
    il n'y a en effet aucunne méthode dans la classe AnnotationConfiguration du package indiqué.
    donc si mes déductions sont correcte, les jars de ma version de Glassfish (GFV3.1.2) essaie d'utiliser cette methode pour créer l'EntityManagerFactory; il faut donc trouver la nouvelle classe qui contient cette methode ou indiquer à GF de chercher ses information ailleurs que dans cette classe là!
    mais j'ai une erreur ensuite avec l'injection de l'entity manager
    c'est exactement là que se trouve également mon problème!

Discussions similaires

  1. [ Tomcat ] Problème de déploiement sous tomcat
    Par Seb78 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 28/10/2004, 12h35
  2. [JOPE] Problème de déploiement
    Par Nuncyco dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/09/2004, 21h57
  3. [EJB] Problème de déploiement
    Par Aurore M dans le forum Java EE
    Réponses: 5
    Dernier message: 04/06/2004, 16h37
  4. [TOMCAT] SOAP - Problème de déploiement
    Par seawolfm dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 21/10/2003, 13h36
  5. [CR][VB]Problème de déploiement
    Par pvil dans le forum SDK
    Réponses: 3
    Dernier message: 16/08/2002, 08h39

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