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 :

[EJB3] Accès distant [EJB Session]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut [EJB3] Accès distant
    Bonjour à tous !

    J'effectue des tests sur les EJB 3 bean stateless.
    Pour ces tests, mon serveur et mon client sont en local.
    Cependant, je trouve obscur la façon dont mon client arrive à récupérer mon bean via lookup, car rien dans mon code ne spécifie d'url ou port etc...

    Comment faire pour préciser au client une url correspondant au serveur sur lequel il doit travailler?
    J'ai essayé avec java.naming.provider.url, mais je peux mettre n'importe quelle valeur et mon client retrouve toujours mon bean

    Le but serait de préciser le nom de ma machine sur le réseau, et non localhost pour simuler un accès via le réseau, pour au final continuer les tests avec mon serveur sur ma machine et le client sur une autre du réseau.

    Merci !

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    bonjour,

    si ton client fait des appels distant il faut:

    1-ton client doit posséder les interfaces de tes ejb distant (moi je procède ainsi mais c'ets pas dit que cela soit la meilleur solution)
    2-ton client doit avoir un fichier intitulé jndi.properties
    ce fichier contient l'url a contacter pour le jndi le nom du serveur et son port ect..

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=localhost:1199
    puis tu fais le lookup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Context context = new InitialContext();
     
             InterfaceBeanFacade beanRemote = (InterfaceBeanFacade)context.lookup("BeanFacade/remote");
             System.out.println(beanRemote.message());

    ou alors tu défini un environnement pour le contexte comme tu as fait surement

    maintenant je ne connais pas ton code donc je peux pas t'en dire plus

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Merci pour la réponse rapide.

    Je n'ai rien créé d'extraordinaire, j'ai simplement suivi ce tuto : http://www.netbeans.org/kb/articles/...ml#Exercise_21
    1 EJB avec 1 méthode helloWorld en gros.

    Sinon pour ce fichier, je suppose qu'il faut spécifié son appel quelque part? Argument de la JVM, ou dans le code client?

    Merci !

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Ton fichier contient en une ligne que j'ai déjà testé dans le code (java.naming.provider.url=localhost:1199)
    Comme je le disais dans mon premier message, je peux mettre un serveur qui n'existe pas, et mon EJB est tout de même trouvé.

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    hummm en faite comme tu utilises l'assistant de netbeans (je me trompe pas ?) il y 'a surement des actions qui te sont cachées je pense

    quelle est l'architecture de ton projet avec l'assistant ?

    il y a surement un fichier de configuration qui a été créé automatiquement pour ton client car dans le tutorial tu utilises ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    InitialContext ctx = new InitialContext();
    Bean30Remote br = (Bean30Remote) ctx.lookup("Bean30");
    System.err.println("EJB message is:" + br.getResult());
    aucun environnement pour ton context n'est défini, ce qui signifie que ton serveur va trouver automatiquement les paramètres défini dans un fichier quelque part je pense.

    il n'y a pas 1000 solutions pour ce faire et je te les ai donné plus haut

    donc je pense que ton assistant à créé un fichier de configuration quelque part je ne vois pas sinon

    j'utilise pas netbeans donc je sais pas comment il procède désolé.

    peut être pourrais tu me donner l'architecture de ton projet ?

    regarde bien dans le src de ton client si il n'y a pas un fichier xml ?

    à plus tard

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    En fait, je n'ai pas de fichier de conf XML de créé dans mon projet client.
    En revanche, je soupçonne netbeans de faire ces config dans le ant de lancement.

    Je me suis penché sur l'utilisation de mon serveur d'application GlassFish pour l'utiliser sans NetBeans.
    J'ai recréé un projet d'une application Java et non J2EE, et j'ai définie mon encironnement avec les deux variables nécessaires à glassfish : org.omg.CORBA.ORBInitialHost et org.omg.CORBA.ORBInitialPort.
    En host j'ai mis le nom réseau de ma machine (et non localhost) et ça marche.
    Lorsque je met un serveur qui n'existe pas, ça plante.. chose que je cherchais !
    Maintenant, je sais que mon client scrute le serveur que j'ai donné sur le port choisi.

    Merci pour la piste, car c'est en voyant org.jboss.naming:org.jnp.interfaces que j'ai compris que la configuration de mon client devait se faire spécifiquement à mon serveur d'application.

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

Discussions similaires

  1. [EJB3] Problème d'accès distant
    Par skyangel dans le forum Glassfish et Payara
    Réponses: 18
    Dernier message: 09/11/2008, 00h28
  2. [XP]Accès distant
    Par pinocchio dans le forum Windows XP
    Réponses: 3
    Dernier message: 24/11/2005, 12h10
  3. accès distants à mysql (débutant)
    Par seb0026 dans le forum Débuter
    Réponses: 1
    Dernier message: 10/10/2005, 22h41
  4. Comment créer une connexion accès distant ?
    Par fredero dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 08/06/2005, 22h31
  5. acces distant a un fichier
    Par vedder dans le forum Développement
    Réponses: 3
    Dernier message: 07/12/2004, 17h58

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