File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Distributed Java and the fly likes Locating rmi registry over the network Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Distributed Java
Bookmark "Locating rmi registry over the network" Watch "Locating rmi registry over the network" New topic

Locating rmi registry over the network

Ricardo Marques

Joined: May 08, 2002
Posts: 27
Hi everybody.
I am building a RMI Application but I am having some problems, locating the RMI registry, which I start with my server.
I know I will only have that server running in that machine (and only one RMI server), so the code looks like this:

In the future I am to replace the "1100" for a parameter, probably read from a properties file.
My server class will be running in a machine named PANORAMIX, inside the local area network.
My clients, which will be run on machines named like ASTERIX, OBELIX, IDEAFIX, ... need to get the RMI registry that I create when I start my server. The code I am using in the clients is:

The parameters, are again to be replaced by values read from properties file.
I am running the clients with

which has the following content

When I had the clients and the server both running in the same machine, ie, the security file had only one SocketPermission line: "", "accept, connect, listen, resolve";
and I used LocateRegistry with "", everything worked fine. Now that I have put them to run on different machines, I can no longer get to the RMI registry from the clients.
The exception text is "refused to connect".
Any help concerning this would be most appreciated.
Thank you.

Sun Certified Programmer for the Java 2 Platform 1.4<p>If I can create, I will make mistakes. If I can learn with them, it must be some kind of art.
karl koch
Ranch Hand

Joined: May 25, 2001
Posts: 388
your policy file does not seem to be correct.
the word "permission" is missing for ASTERIX, OBELIX, IDEAFIX.
perhaps this prevents the file to be read correctly ?
since you still have the "permission;" in your file you should not have any problem at all so i guess either your policy file is either not in the good place, incorrect or you do not load it correctly.
raimondas zemaitis
Ranch Hand

Joined: Feb 23, 2001
Posts: 104
in your code
LocateRegistry.getRegistry().rebind("workServer", server);
is looking for RMI registry on a default port (1099), while you create it on 1100 port. Statement that you have only one registry on your PC is not correct, LocateRegistry is not going to scan all possible ports on your machine to try to see which is being listened by registry.
Ricardo Marques

Joined: May 08, 2002
Posts: 27
Thanks for the suggestions. I have found the solution some time ago, but still hadn't had the time to thank you.
Thank you.
I agree. Here's the link:
subject: Locating rmi registry over the network
It's not a secret anymore!