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 :

Perte de la session Hibernate lors d'imbrication d'EJB Session / Entité


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut Perte de la session Hibernate lors d'imbrication d'EJB Session / Entité
    Bonjour à tous. Voilà j'ai un projet que je dveloppe en EJB3+JPA sous Jonas 5 avec Hibernate comme moteur de persistence sur une bdd 10G.

    En gros donc j'ai une couche entity englobé dans couche EJB3 stateless (le grand classique ).

    Pour appelé ces EJB j'utilise un ServiceLocator qui me remonte l'interface de l'EJB en question (Remote ou local). Quand je test l'appel de mes EJB à distance (Ou via web service) tout fonctionne bien.

    Ensuite c'est là que ça se complique. Afin de faire la boucle complète de traitement j'ai englobé c'est EJB stateless dans un autre EJB stateless qui lui est en fait ma couche qui englobe les traitements.

    Et là c'est le drame.Afin de pourvoir faire mon traitement dans sa globalité j'ai besoin de faire appel à plusieurs de ces EJB stateless englobant les entity. Le premier appel à un EJB se passe bien et lors de l'appel du 2ème j'ai une exception qui m'indique que la connection hibernate ne peut être ouverte (elle ne devrait pas être fermée vu que le premier EJB est passé et que du coup normalement ma transaction aurait du la garder). Donc du coup je rame et je n'arrive pas à faire ma couche de traitement.

    Si vous avez besoin de plus amples informations n'hésitez pas.

    Si vous avez la moindre idée je suis preneur

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    J'avoue que là je suis perdu en faisant le même test et en utilisant directement deux EJBStateless dans mon EJBstateless de traitement cela ne marche pas non plus. Le premier passe bien et le deuxieme toujours la même erreur Hibernate me dit qu'il ne peut pas ouvrir la connection.

    Question bête lorsqu'on suit les spec on peut bien appelé des EJB stateless dans des EJB stateless ou je fait fausse route ??

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Bon j'ai trouvé et pour ceux que ça intéresse il faut binder 2 properties hibernate sur conteneur CMP du serveur EJB sans quoi l'entityManager est décorélé de la transaction en utilisant celui d'hibernate.
    Voilà ce qu'il faut mettre pour JONAS car je pense que ça peut peut être aider certaines personnes.

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.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_1_0.xsd">
    <persistence-unit name="jpaSig" transaction-type="JTA">
    	<provider>org.hibernate.ejb.HibernatePersistence</provider>
    	<jta-data-source>jdbc/xa10g</jta-data-source>
    		<properties>
    			<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
    			<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
    			<property name="hibernate.show_sql" value="true" />
    			<property name="hibernate.trace_sql" value="true" />
    			<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JOTMTransactionManagerLookup"/>
    			<property name="hibernate.jndi.class" value="org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory"/>
    		</properties>
    	</persistence-unit>
    </persistence>
    Les deux lignes en bleus sont nécessaires. Je pense que ce doit être le cas également pour d'autres serveurs d'application.

    Je positionne donc ce monologue à résolu

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/04/2014, 14h37
  2. [PHP 5.3] Perte de session PHP lors de requete Ajax
    Par touness dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2012, 14h06
  3. [Hibernate][Struts] Fermeture des session hibernate
    Par osopardo dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/08/2005, 17h30
  4. [Hibernate][Spring] Session Hibernate initialisée
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/08/2005, 13h07
  5. Erreur lors du verrouillage de la session
    Par portu dans le forum API, COM et SDKs
    Réponses: 17
    Dernier message: 29/06/2005, 08h56

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