Forum Programmation.java Les EJB... jboss

Posté par  .
Étiquettes : aucune
0
3
avr.
2006
Bonjour à tous,

Je suis à fond dans les EJB en ce moment, mais je bute sur le même problème
depuis plus d'une semaine malgrès avoir ratissé le web et avoir fait tous les
tutoriaux qui existent...

Je tente tout simplement d'accèder à mon EJB (du coup j'en ai qu'un pour le
moment...) mais à partir d'un autre serveur et lorsque je fais l'appel j'ai des
exceptions du genre "connection refused", il recherche sur 127.0.0.1 alors que
j'ai mis PROVIDER_URL à la bonne adresse, etc... En local ca fonctionne nickel
(dans la même JVM) et là je comprend pas ce qui cloche. J'essaye de
comprendre les pattern Facade et Helper mais c'est un peu vague pour le
moment.

J'utilise jboss 4.0.3SP1, j'ai essayé avec jboss3.2.8SP1, sous eclipse 3.1.2.
JDK 1.5 ou 1.4 au choix !!! je suis ouvert à tout :-)

Voilà si quelqu'un a un tuto qui explique pour faire un bean et l'accéder d'un
autre serveur je suis partant !

Merci d'avance pour vos lumières !
a+
Xavier
  • # JNDI

    Posté par  . Évalué à 1.

    Tu as mis le PROVIDER_URL comment ? A mon avis c'est un soucis de jndi.properties.
    Il faut que le service ENC (JNDI pour le J2EE) soit utilisable et pour ça il faut dire à la JVM qui est il.
    Personnellement pour attaquer des EJB déployés dans JBoss depuis une application standalone j'ai le fichier jndi.properties suivant :


    ### JBossNS client properties for connection from the localhost
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url=jnp://localhost:1099/
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    # The jnp protocol socket factory class
    jnp.socketFactory=org.jnp.interfaces.TimedSocketFactory
    # The TimedSocketFactory connection timeout in milliseconds(0 == blocking)
    jnp.timeout=0
    # The TimedSocketFactory read timeout in milliseconds(0 == blocking)
    jnp.sotimeout=0


    Il faut alors que ce fichier soit trouvé dans le classpath (dans le JAR contenant le client EJB par exemple).

    P.S.: Il est tout à fait normal que ça marche dans la JVM de JBoss car il se charge alors de mettre les propriétés JNDI dans le JVM comme il convient.
    • [^] # Re: JNDI

      Posté par  . Évalué à 1.

      Salut,

      J'ai mis les meme infos dans le context que dans le jndi.properties, ceci dit, je viens de le mettre dans le jar client et ca ne change rien :-/ je l'ai mis "à la racine du jar" avec les infos que tu as donnée mais en mettant l'IP de mon serveur, j'ai quand meme l'exception : CommunicationExceptiion : Connection refused to host 127.0.0.1 ?!! Un peu bizarre quand meme !! c'est comme si il n'en tenait pas vraiment compte ...

      Voilà... merci encore
      a+
      Xavier
      • [^] # Re: JNDI

        Posté par  . Évalué à 1.

        Vérifie avec un telnet localhost 1099 que le port du JNP Invoker est ouvert, il se peut bien que par défaut ça ne soit pas le cas.

        Si ce n'est pas le cas, regardes dans jboss/server/[conf]/conf/jboss-service.xml si -1 ne serait pas spécifié en tant que port.

        Si le telnet accède bien au JNP Invoker, tente un petit programme de test en créant un java.util.Properties équivalant au jndi.properties à passer à un javax.naming.InitialContext.
        • [^] # Re: JNDI

          Posté par  . Évalué à 1.

          En local j'ai pas de probleme pour appeller mon Bean, c'est à partir d'un autre
          serveur que ca ne fonctionne pas :-( Pourtant, un telnet sur le port 1099 de
          serveur jboss me repond correctement. Ce que je ne comprend pas c'est
          pourquoi mon client ne cherche pas a dialoguer avec le serveur JBoss malgres
          le code en dur PROVIDER_URL etc... Là je pige pas ?!

          Merci a+
          Xavier
  • # Résolu !

    Posté par  . Évalué à 2.

    Re à moi même !

    Bon en fait c'est résolu ! Ca fait presque 2 semaines que je me prend la
    tête avec cette histoire de client ! L'erreur qui m'a dérouté c'est que l'ip
    (127.0.0.1) qui est donnée dans l'erreur est celle retournée par le serveur !!!
    Je pensais que je ne me connecté même pas au serveur mais en fait si !
    Donc en mettant l'adresse IP dans le fichier hosts du serveur à son IP
    réseau, le problème est résolu... comme ca le bind est fait sur son IP réseau.

    Voilà,
    Merci à vous
    Xavier

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.