title: RMI Server Exception
body: <p>I am getting below exception from RMI when I try to run a Server which uses a remote registry.</p>
  
  <p>My registry cod for the main method in Server2 class is</p>
  
  <pre><code>Registry registry = LocateRegistry.getRegistry("192.168.1.4",1100);
  registry.rebind("Hello",stub);
  </code></pre>
  
  <p>192.168.1.4 is another machine in the same LAN.</p>
  
  <p>Please help me.</p>
  
  <pre><code>Server2 exception:java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
   java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
   java.lang.ClassNotFoundException: example.Hello.RemoteHello2
  java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
   java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
   java.lang.ClassNotFoundException: example.Hello.RemoteHello2
   at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396)
   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
   at sun.rmi.transport.Transport$1.run(Transport.java:159)
   at java.security.AccessController.doPrivileged(Native Method)
   at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)
   at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
   at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
   at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
   at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
   at example.Hello.Server2.main(Server2.java:29)
  Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
   java.lang.ClassNotFoundException: example.Hello.RemoteHello2
   at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
   at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:386)
   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
   at sun.rmi.transport.Transport$1.run(Transport.java:159)
   at java.security.AccessController.doPrivileged(Native Method)
   at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)
  </code></pre>
  
  <p>I have the class called RemoteHello2 and I can confirm this because another Server program in the same package is running fine.</p>
  
  <p>I have 2 server programs, 1 uses localhost as the registry and 2nd one uses a remote server as registry.</p>