I believe somebody else meets this too, but I couldn't find related post. To start rmi server programatically, I use LocateRegistry.createRegistry(portNum); my code: LocateRegistry.createRegistry(1099); Hello h = new Hello("Steve"); Naming.rebind("TEST",h); Everything works successfully for 1099(including client calling the method), however, if the port is not 1099, let's say 1098, the following exception occures at Naming.rebind. I am using java version 1.4.2_01. Thank you for the advice!! Exception in thread "main" java.rmi.ConnectException: Connection refused to hos : 10.40.194.54; nested exception is: java.net.ConnectException: Connection refused: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) at sun.rmi.server.UnicastRef.newCall(Unknown Source) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at java.rmi.Naming.rebind(Unknown Source) at Test.main(Test.java:13) Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown ource) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown ource) ... 7 more
I play Java for fun.<br /> <br />SCJP / SCJD / SCWCD / SCBCD
YungSheng, The code you show creates a new registry but uses the default registry, not the new one. After creating the registry, you have to get a reference to it and then use it to perform the binding as in the following example:
kktec<br />SCJP, SCWCD, SCJD<br />"What we observe is not nature itself, but nature exposed to our method of questioning." - Werner Heisenberg
The createRegistry() method does have a return value, for precisely this purpose:
"I'm not back." - Bill Harding, Twister
Joined: Jul 28, 2003
Yes, it works, thank you all. In fact, we were taught to use network socket to write project in school. That may be quite different from you guys. Well I have to say RMI is more straightforward though. Yap, if you ever implement the "network whiteboard" project, we may go to the same school.