This week's book giveaway is in the Java 8 forum.
We're giving away four copies of Java 8 in Action and have Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft on-line!
See this thread for details.
The moose likes Distributed Java and the fly likes RMI app behind VMWare NAT Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Distributed Java
Bookmark "RMI app behind VMWare NAT" Watch "RMI app behind VMWare NAT" New topic
Author

RMI app behind VMWare NAT

Van Ho
Greenhorn

Joined: Mar 05, 2006
Posts: 1
Hi,

I'm also having problem with RMI app behind NAT as well. Could you please
help me to identify problem and to solve it?

The scenario is as follow:

- My RMI server is running on Linux machine which is running as guest on VMWare with Windows XP is host OS.
- On XP, physical IP address: 129.94.174.21 (host IP), virtual IP address: 192.168.170.1
- On Linux, virtual IP address: 192.168.170.128 (guest IP).
- On Virtual networking configuration, virtual NAT sets to forward port 1099 to virtual IP 192.168.170.128.
- On Linux, the RMI server is created as follow:

if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
String host = 129.94.174.21;
int port = 1099;
java.rmi.registry.Registry reg =
java.rmi.registry.LocateRegistry.createRegistry(port);
HelloImpl obj = new HelloImpl(port);
// Bind this object instance to the name "HelloServer"
Naming.rebind("//" + host + ":" + port + "/HelloServer", obj);

- And the server is running with option -Djava.rmi.server.hostname=129.94.174.21.
- RMI client is on another physical machine and is looking up and invoking on host IP 129.94.174.21. And I got "Connection refused to host", as stack trace shown below.

- If I run RMI client on host machine, connection is fine. I've also verified that the host machine is accepting incoming calls by running RMI server on host machine, and RMI client from the same machine that I run RMI client earlier. The connection is OK as well.

Am I missing something here?

Thank you very much in advance.
Regards,
Van

=======================================

-bash-3.1$ ./runclient-desk.sh
reg 0 HelloServer
HelloServer found: true
HelloApplet exception: Connection refused to host: 192.168.170.128; nested
exception is:
java.net.ConnectException: Connection timed out
java.rmi.ConnectException: Connection refused to host: 192.168.170.128; nested
exception is:
java.net.ConnectException: Connection timed out
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.invoke(Unknown Source)
at examples.hello.HelloImpl_Stub.sayHello(Unknown Source)
at examples.hello.HelloApp.init(HelloApp.java:85)
at examples.hello.HelloApp.<init>(HelloApp.java:67)
at examples.hello.HelloApp.main(HelloApp.java:113)
Caused by: java.net.ConnectException: Connection timed out
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
Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown
Source)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: RMI app behind VMWare NAT
 
Similar Threads
rmi--about socket factory
I need help on applet crashing
rmi connection refused if not 1099
ConnectException in Webstart clients
RMI app behind NAT firewall