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: java.net.SocketPermission "127.0.0.1", "accept, connect, listen, resolve"; and I used LocateRegistry with "127.0.0.1", 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.
Joined: May 25, 2001
hi 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 java.security.AllPermission;" 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. k
Joined: Feb 23, 2001
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.
Joined: May 08, 2002
Thanks for the suggestions. I have found the solution some time ago, but still hadn't had the time to thank you. Thank you.