Question

J'écris un petit utilitaire pour envoyer des messages JMS à un serveur distant, mais je ne parviens pas à configurer correctement le contexte initial (ou semble-t-il)

code pour initier le contexte:

      Properties p = new Properties();
      p.put(Context.INITIAL_CONTEXT_FACTORY, 
            "org.jnp.interfaces.NamingContextFactory");
      p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
      p.put(Context.PROVIDER_URL, "jnp://10.10.10.10:1099/");
      Context context = new InitialContext(p);

Mais lorsque je l'exécute, une exception se produit:

javax.naming.CommunicationException 
[Root exception is java.rmi.ConnectException: 
Connection refused to host: 127.0.0.1; 
nested exception is: 
java.net.ConnectException: Connection refused: connect]

Donc, ce qui me dérange, c’est que je me plains de l’événement 127.0.0.1 même si je le configure pour 10.10.10.10, qui est en vie, jboss, sans pare-feu, je peux obtenir une session telnet sur le port 1099, donc il me semble être ok

Des pointeurs? ou des aides?

Était-ce utile?

La solution

Cela est dû au fait que JNDI et les protocoles dépendants sont de nature à établir une connexion, et que les demandes ultérieures iront à l'adresse IP sur laquelle le serveur "croit" qu'il devrait être à l'écoute. Si vous téléphonez au 10.10.10.10:1099 et regardez le résultat, vous verrez quelque chose comme ceci:

telnet 10.10.10.10 1099
[Connection message]
[Garbage]
127.0.0.1....

La raison en est que votre serveur "sert" le 127.0.0.1 et répondra avec cette adresse comme emplacement JNDI. Parce que vous êtes (très probablement) sur un ordinateur distant, lorsque votre ordinateur distant tente de se connecter à l'adresse IP à laquelle le serveur Jboss l'a informé (127.0.0.1), il tente de se connecter à lui-même et non au serveur JBoss.

Vous devez soit démarrer jboss avec: ./run.sh -b 0.0.0.0 (toute la liaison IP), ou modifier votre entrée localhost sur l'ordinateur en 10.10.10.10

(D'ailleurs, je me souviens d'avoir lutté avec celui-ci pendant des siècles et je sais à quel point c'est frustrant.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top