1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 28
    Points : 10
    Points
    10

    Par défaut Appeler des beans à distance avec EJB3 et JBoss

    Salut.
    Je suis debuttant avec JAVA et EJB3 et JBoss donc votre aide me sera vraiment précieux

    J'ai sur mon poste serveur des beans session dont j'ai instalé JBoss.
    Sur le poste client je développe la classe principale qui va appelé a distance ses différente beans X,Y Z,...
    Un des attributs de la classe principale est de type X (beans qui se situe sur le serveur)
    Comment peut on déclarer cette classe?
    Je sais que pour appeler un beans a distance avec EJB3 il faut passer par lookup et mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Context context = new InitialContext();
    X  Interface= 
    (X) context.lookup("X1/remote");
    et mettre avant la declaration des beans @Remote

    J'ai en faite 3 question qui me preoccupe:

    1)Es-que je doit faire des appels RMI?Si oui a quoi sert EJB3 alors?
    2)Si j'appelle un beans et tout va bien mais que ce dernier a besoins lui aussi d'apelé d'autre beans,comment fait il?
    3)Y a il d'autre chose a savoir pour pouvoir appelé et manipuler mes beans a distance?

    je développe avec la dernière version d'Eclipse et j'ai JBoss 4.0

    Merci d'avance de votre aide.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    6 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 6 207
    Points : 8 035
    Points
    8 035

    Par défaut

    1) Non, c'est soit RMI, soit EJB... mais les EJB s'appuient sur RMI
    2) Tout dépend du "où se trouve le bean à appeler par rapport au bean en cours"

    Si ton EJB1 doit appeler un EJB2 lui même distant, il devra utiliser l'interface Remote de EJB2 et utiliser un mécanisme très proche de celui de ton client final.
    Si les 2 sont sur le même serveur, il est préférable d'utiliser l'interface Local.
    Il y a une différence fondamentale entre les 2 :
    - interface Remote => passage par valeur (marshalling/unmarshalling)
    - interface Local => passage par référence (beaucoup plus rapide !)

    3) Pour le client final, tout va se passer dans le "InitialContext".
    C'est là qu'il faudra préciser où se situe le serveur pour que le service JNDI puisse trouver l'objet. Il y a plusieurs façons de faire, mais pour débuter, tu peux utiliser la méthode avec un fichier de propriétés, un peu comme ça
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
    props.setProperty("java.naming.provider.url","localhost");
    props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

    InitialContext ctx = new InitialContext(props);
    Les valeurs du fichier "props" dépendent du serveur cible, il faudra peut-être adapter...

    Sinon, tu peux également jeter un oeil du côté du concept de façade, très pratique dans ce genre d'environnement...

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 28
    Points : 10
    Points
    10

    Par défaut

    Merci pour votre reponse.Je commence de comprendre le mécanisme.

    Alors si j'ai bien compris en configurant le fichier prop et avec le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context context = new InitialContext();
    X  Interface=  (X) context.lookup("X1/remote");
    je peut manipuler un objet de type X1 comme s'il étais local.

    Sinon comment faire pour déclarer un objet de type X1 et le mettre par exemple comme attribut de ma classe.

    Merci d'avance

Discussions similaires

  1. Extjs : appel des beans java dans le fichier .js
    Par ayoubkira dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 28/07/2011, 07h47
  2. Editer des fichiers à distance avec Netbeans
    Par proDZ dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/10/2010, 21h31
  3. appeler des fonctions javascript avec php
    Par thaundeadboss dans le forum Syntaxe
    Réponses: 1
    Dernier message: 11/12/2009, 11h18
  4. [EJB3 Entity] gestion des clés primaires avec EJB3 !
    Par magnum_cl9 dans le forum Java EE
    Réponses: 6
    Dernier message: 17/07/2009, 17h43
  5. deployer un projet java avec ejb3 et jboss sous eclipse
    Par flamant dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/02/2009, 08h48

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