2009-06-02 6 views
6

Comment puis-je modifier le port RMI par défaut (1099). Il peut s'agir d'un paramètre JVM ou d'un codage, cela n'a pas d'importance. Merci.Modifier le port RMI par défaut (Java)

+0

Registre ou serveur? – dfa

+2

1099 est le port du serveur de registre RMI, pas le port du serveur RMI. –

+0

[ici] (http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2008-09/msg00874.html) est une solution via le codage. On dirait que vous devez créer un registre personnalisé sur votre port sélectionné. ** Modifier ** - il suffit de relire votre question: cela ne changera pas le port ** par défaut ** mais ajoutera un nouveau registre à celui existant sur le port 1099 –

Répondre

10

Vous pouvez le spécifier sur la ligne de commande. De l'RMI Tutorial:

Par défaut, le registre fonctionne sur le port 1099. Pour lancer le Registre sur un autre port, indiquez le numéro de port sur la ligne de commande. N'oubliez pas de désactiver votre variable d'environnement CLASSPATH.

Microsoft Windows: 

start rmiregistry 2001 

Solaris OS or Linux: 

rmiregistry 2001 & 

Dans votre code que vous utilisez la LocateRegistry.getRegistry(String host, int port) override pour localiser le Registre par le nom d'hôte et le port, comme expliqué dans la section Creating a Client Program du tutoriel. (La même chose s'applique lors de l'implémentation de votre serveur.)

+0

Ok, alors ce que vous dites est qu'il n'y a aucun moyen de changer le port rmiRegistry, mais vous pouvez changer le port rmiServer de 1098 à tout ce qui utilise un argument de propriété -D à la JVM? – djangofan

+0

@djangofan: Pas exactement. Vous modifiez le port rmiregistry sur la ligne de commande (comme indiqué ci-dessus). –

+0

@djangofan il dit exactement le contraire de cela. – EJP

3

Vous pouvez spécifier votre propre port lors de l'exportation de votre objet distant, via super (port, ...) ou exportObject (distant, port, ...) selon que vous étendez ou non UnicastRemoteObject. Si vous étendez Activable, il existe des surcharges super() similaires avec un numéro de port. Vous pouvez spécifier le port du Registre sur la ligne de commande si vous l'utilisez, sinon via LocateRegistry.createRegistry() si vous l'utilisez.

Questions connexes