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 :

Client distant et communication ejb


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Par défaut Client distant et communication ejb
    Bonsoir,

    Je cherche a savoir s'il est possible d'avoir un client en java sur le pc1.(application swing)
    et un serveur d'ejb sur le pc2 ( ejb creer avec eclipse , et jonas)

    nb: les pc1 et pc2 ne sont pas sur le meme reseau ...

    Car pour le moment, j'ai bien mon client et mes ejb, mais pas moyen de faire fonctionner le client a distance, alors qu'en local, pas de soucis ca fonctionne nikel..

    Merci d'avance pour vos reponses ...

    edit: des precisions:

    J'ai bien creer l'ejb en remote .
    j'ai bien configuré le jndi puis qu'en local sa fonctionne .
    dans le client j'utilise bien :
    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
     InitialContext monContext;
            try {
                monContext = new InitialContext();
                Object ref = monContext.lookup("ejb/testSessionBean");
                testSessionRemoteHome TSRH = (testSessionRemoteHome)PortableRemoteObject.narrow(ref,testSessionRemoteHome.class);
                try {
                    testSessionRemote TSR = TSRH.create();
                    int result = TSR.operation(Integer.parseInt(jTextField1.getText()),Integer.parseInt(jTextField2.getText()));
                    jTextField3.setText(String.valueOf(result));
                } catch (RemoteException ex) {
                    ex.printStackTrace();
                } catch (javax.ejb.CreateException ex) {
                    ex.printStackTrace();
                }
            } catch (NamingException ex) {
                ex.printStackTrace();
    mais cela oblige a mettre mon client et ma partie ejb dans le meme package. En local c'est bien, mais pour faire en sorte que le client s'execute a distance, c'est pas vraiment pratique ...

    Surtout que je souhaite que le PC1 n'est que et uniquement le client . et rien des ejb ...

    De plus, j'ai pas mal chercher sur internet, mais en general, il y est presenté comment les faire, mais toujours en local ... ce que je sais faire ...
    mais j'ai a aucun moment trouvé des exemple (exemple de code) d'un client executé a distance ... malgré quelques site qui parle de communication avec rmi ... mais sans donné des exemples .

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Par défaut
    Citation Envoyé par pierrodefrance
    nb: les pc1 et pc2 ne sont pas sur le meme reseau ...
    (
    Pour que cela fonctionne, il faut que pc1 et pc2 soient se voient en LAN ou par internet.

    Pour que cela fonctionne, il faut changer cette instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      monContext = new InitialContext();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
     // chargement de propriétés du serveur distant
     
      Properties props = new Properties()
      ...
     
     //création du contexte serveur
     
     
      monContext = new InitialContext(props);
    pour passer les propriétés du serveur distant.

    Evidement les propriétés dépende de l'application server.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Par défaut
    En effet, Pc1 et pc2 sont reliés par internet .

    j'ai essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Properties props = new Properties()
    props.put(Context.INITIAL_CONTEXT_FACTORY,"org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory");
    props.put(Context.PROVIDER_URL, rmi://ip_du_pc2:1099);
    mais avec cela, quand je met le client dans un autre package, les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    testSessionRemoteHome TSRH = (testSessionRemoteHome)PortableRemoteObject.narrow(ref,testSessionRemoteHome.class);
    et:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    testSessionRemote TSR = TSRH.create();
    me demande toujours d'etre dans le meme package que celui contenant les ejb, hors ce package ( appelle serv) n'est pas censé etre sur le Pc1 qui contient le client dans le package client, mais sur le PC2.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Par défaut
    essaie de voir d'abord si le pc1 communique avec le pc 2
    si c 'est oui regarde si le pare feu ne bloque un port

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Par défaut
    Aucun soucis de ce soté la, tout communique bien...

    Le probleme est le fait que dans le code du client je doit faire un import du package du serveur, et dc d'avoir le code du serveur au meme endroit que le client ... alors la oui ca fonctionne ...

    Mais je souhaite que le pc contennant le code client ne contienne pas le code serveur ...

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Par défaut
    Tu travaille avec quels outils?

    Ce ne serait pas un problème de configuration du package client. Celui-ci ne devrait pas contenir le code des EJBs, mais les interfaces (+ éventuellement ceux générés automatiquement) vers ceux-ci.

Discussions similaires

  1. [EJB] Comment faire référence à un ejb dans un client distant ?
    Par tofke dans le forum Java EE
    Réponses: 5
    Dernier message: 25/01/2008, 09h44
  2. [EJB] communication EJB avec 2 versions différentes java
    Par smiskey dans le forum Java EE
    Réponses: 1
    Dernier message: 27/02/2007, 18h08
  3. [V10/XE] Accepter le Web vers les clients distants
    Par othon_oda dans le forum Oracle
    Réponses: 2
    Dernier message: 24/08/2006, 11h29
  4. [debutant][client distant] droit d'accès
    Par Invité dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/02/2006, 11h51
  5. [JNDI] Appel distant d'un EJB
    Par Righetto Dominique dans le forum Java EE
    Réponses: 4
    Dernier message: 27/01/2005, 17h05

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