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

Java EE Discussion :

Référence entre beans [EJB2.1]


Sujet :

Java EE

  1. #1
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut Référence entre beans
    Hello,

    Voilà mon problème :

    J'ai deux fichiers JAR, disons : toto.jar et titi.jar qui contiennent chacun un EJB (entité CMP 2.1) Toto et Titi respectivement.

    Dans titi.jar, mon bean Titi a une relation vers Toto. Cependant, je ne parviens pas à exprimer cette relation ... J'obtiens toujours un Toto not bound de la part du conteneur (Jboss 4)

    Voilà à quoi ressemble le fichier ejb-jar.xml de Titi :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0/EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    	<enterprise-beans>
    		<entity>
    			<ejb-name>Titi</ejb-name>
     
    			<home>TitiHome</home>
    			<remote>TitiRemote</remote>
    			<local-home>TitiLocalHome</local-home>
    			<local>TitiLocal</local>
     
    			<ejb-class>TitiBean</ejb-class>
     
    			<prim-key-class>TitiEjbKey</prim-key-class>
     
    			<persistence-type>Container</persistence-type>
    			<cmp-version>2.x</cmp-version>
    			<abstract-schema-name>TitiSN</abstract-schema-name>
    			<reentrant>False</reentrant>
     
     
    			<ejb-local-ref>
    				<description>...</description>
    				<ejb-ref-name>Toto</ejb-ref-name>
    				<ejb-ref-type>Entity</ejb-ref-type>
    				<local-home>TotoLocalHome</local-home>
    				<local>TotoLocal</local>
    				<ejb-link>toto.jar#Toto</ejb-link>
    			</ejb-local-ref>
     
    		</entity>
    	</enterprise-beans>
     
    	<relationships>
    		<ejb-relation>
    			<ejb-relation-name>TitiLinkedToToto</ejb-relation-name>
     
    			<ejb-relationship-role>
    				<ejb-relationship-role-name>Titi</ejb-relationship-role-name>
    				<multiplicity>Many</multiplicity>
    				<relationship-role-source>
    					<ejb-name>Titi</ejb-name>
    				</relationship-role-source>
    				<cmr-field>
    					<cmr-field-name>toto</cmr-field-name>
    				</cmr-field>
    			</ejb-relationship-role>
     
    			<ejb-relationship-role>
    				<ejb-relationship-role-name>Toto</ejb-relationship-role-name>
    				<multiplicity>One</multiplicity>
    				<relationship-role-source>
    					<ejb-name>Toto</ejb-name>
    				</relationship-role-source>
    			</ejb-relationship-role>
     
    		</ejb-relation>
    	</relationships>
    </ejb-jar>

    J'obtiens alors un "Toto not bound" lors du déploiement ... Une piste ?

    Merci !
    Toine

  2. #2
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Personne ne sait comment faire pour référencer un EJB se trouvant dans un autre JAR ????

    Toine

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Points : 173
    Points
    173
    Par défaut
    pour commencer, si les ejb sont dans deux jars differents, il faut utiliser des interfaces remotes, donc l'element <ejb-ref>

  4. #4
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Cela est déjà fort gênant étant donné des pertes de performance occasionnées alors que mes JAR sont sur le même serveur, l'un à côté de l'autre...

    Mais bon, admettons : j'ai essayé avec <ejb-ref> et ça ne fonctionne pas ...

    L'as-tu déjà fait avec succès ?

    Merci pour ton aide !
    Anthony

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Points : 173
    Points
    173
    Par défaut
    j'ai jamais bosse avec JBoss...


    est ce que le fichier jboss.xml de ton toto.jar ressemble bien a ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE jboss PUBLIC
        "-//JBoss//DTD JBOSS 3.2//EN"
        "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
     
    <jboss>
      <enterprise-beans>
        <entity>
          <ejb-name>....</ejb-name>
          <jndi-name>Toto</jndi-name>
        </entity>
      </enterprise-beans>
    </jboss>

  6. #6
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Je travaille avec JBoss, mais l'application doit respecter le plus possible les specs J2EE afin d'être facilement portable.

    Donc si ça marche avec un autre serveur, ça m'interresse aussi !

    Oui le fichier resemble à ça, avec en plus :

    <local-jndi-name>TotoLocal</local-jndi-name>

    Anthony

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Points : 173
    Points
    173
    Par défaut
    bon, je seche un peu.
    j'ai jamais utilisé le <ejb-link>, alors je ne sais pas si ca peux venir de la.

    Mais plutot que de faire 2 jar pour les mettre dans un meme ear, pourquoi ne pas mettre tes 2 EJB dans le meme jar ?
    Ca regle le probleme et ca te permet de travailler avec des interfaces locales

  8. #8
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Dommage

    Et bien en fait, le problème est que nous travaillons à plusieurs sur le développement EJB et donc il est beaucoup plus pratique que chacun bosse sur une série d'EJB relié fonctionnellement et déploiement juste son travail afin que chacun n'est pas à déployer tous les EJB à chaque test ... Il y aura plus de 200 EJB au final ...

    Merci qd même pour ton aide,
    Anthony

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Points : 173
    Points
    173
    Par défaut
    ce qui veut dire que Toto et Titi sont développés par 2 personnes différentes ?
    et qu'ils sont donc deployés séparement ?

    Si c'est ca, tu n'as pas à utiliser le <ejb-link>.
    Et ton probleme doit plutot venir du fait que Toto n'a pas été (correctement) déployé

  10. #10
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Oui c bien ça.

    Toto semble bien déployer car aucune erreur n'est remonté et lorsque je l'utilise via une appli cliente de test, il répond parfaitement.

    Mais Titi ne parvient pas à le trouver lorsqu'il est déployé à son tour ... d'où le "Toto not bound"...

    Anthony

  11. #11
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Apparement, ce n'est pas faisable ... Je suis contraint à décrit tous mes beans dans le même fichier JAR ... Super pratique ...

    Merci qd même pour votre aide !

    Anthony

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Je ne sais pas si c'est le même problème que celui que j'ai eu, je travaille aussi avec des .jar externe pour mes EJB.

    Il semble que JBoss n'accepte pas les nom JNDI entre EJB remote avec des majuscules. depuis que mes nom sont en minuscules, ça marche nickel et je n'ai plus de "toto not bound"

    A voir si pour toi c'est la même chose.....

    A+

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

Discussions similaires

  1. Difference entre beans, javabean, pojo ?
    Par DanZzz dans le forum Langage
    Réponses: 7
    Dernier message: 16/04/2013, 21h01
  2. Références entre crochets !?
    Par walou dans le forum Débuter
    Réponses: 2
    Dernier message: 12/06/2008, 17h46
  3. Réponses: 8
    Dernier message: 09/08/2007, 17h34
  4. Build-Path / Class-Path : Référence entre projets
    Par JohnNC dans le forum Langage
    Réponses: 1
    Dernier message: 17/01/2007, 14h03
  5. référence entre base de données
    Par tipim dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/04/2006, 11h17

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