2010-03-15 5 views
0

Je sais que mon application RMI fonctionne correctement - il fonctionne très bien lorsque le serveur est sur localhost et à l'intérieur du réseau local, mais lors de la connexion à un serveur RMI externe, il échoue en essayant de faire stub appelleConnexion à un serveur RMI situé derrière un pare-feu?

Ainsi, le serveur est lié à localhost (IP interne - 192.168.1.73) mais le client spécifie une adresse IP externe (45.4.234.56) - qui est ensuite transmise au serveur interne. Comment résolvez-vous ce problème?

grâce

+0

Je ne vois pas cette fin bien. Vous ne voulez vraiment pas exposer un serveur RMI. –

Répondre

2

L'approche « simple » est pour votre administrateur réseau pour ajouter le transfert IP à partir d'un port spécifique sur le pare-feu à votre serveur.

En supposant que ce n'est pas une option (et ce n'est probablement pas le cas), RMI prend en charge le tunneling sur HTTP. Les performances sont médiocres, mais le pare-feu est beaucoup plus convivial.

http://java.sun.com/javase/6/docs/technotes/guides/rmi/faq.html#firewallOut

Cette méthode éculée est populaire depuis il faut presque aucune installation, et fonctionne très bien dans des environnements firewalled qui vous permettent de gérer HTTP via un proxy, mais interdisez au régulière connexions TCP sortantes.

Si Java RMI n'effectue une connexion normale (ou SOCKS) au destiné serveur , et il remarque qu'un serveur proxy HTTP est configuré, il tentative de tunnel Java RMI demande via ce serveur proxy , un à fois.