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

RMI issue

satya sahu
Ranch Hand

Joined: Mar 26, 2003
Posts: 97
Hi i am trying to execute a simple RMI Program over a network.
I have deployed the interface file and the server file in one system and the client program withe the interface file at another system.
I have ran the server.
Now when i tried to run the client i am getting following exception.

Exception in thread "main" java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: MyServer_Stub (no security manager: RMI class loader disabled)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(
at MyClient.main(
Caused by: java.lang.ClassNotFoundException: MyServer_Stub (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(
at sun.rmi.server.LoaderHandler.loadClass(
at java.rmi.server.RMIClassLoader$2.loadClass(
at java.rmi.server.RMIClassLoader.loadClass(
at sun.rmi.server.MarshalInputStream.resolveClass(
... 3 more

What should i do to solve this ?
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46409
Is that really a beginner's question? Oughtn't you to have put it on the distributed forum?
I presume you have checked the Exception in the API specification, nd whichever line of your program actually caused the Exception (which from the stack trace shown appears to be one of the "3 more")?
aslam parveez
Ranch Hand

Joined: Apr 25, 2006
Posts: 47
Looks like you are trying to run the client without putting the stub class in the classpath of client program as the stack trace indicates

java.lang.ClassNotFoundException: MyServer_Stub .

When you have an RMI server class you need to create the stub and skeleton for the same. JDK tool rmic will help you in doing that.Upon doing rmic you'll get two classes MyServer_Stub.class and MyServer_Skel.class(If MyServer is the name of your class).These are client side and server side proxies respectively which are basically concerned with marshalling and unmarshalling of parameters to a remote method.

You need to copy the MyServer_Stub.class into the working directory of your client program in the client machine.
I agree. Here's the link:
subject: RMI issue
It's not a secret anymore!