Re: ClassNotFoundException while running Server class
Sebastian Konietzny <[email protected]> Tue, 16 Oct 2007 19:33:47 +0200
| Newsgroups | gmane.comp.java.sun.rmi |
|---|---|
| Organization | CeBiTec / Bielefeld University |
| Message-ID | <[email protected]> |
This problem is solved! It was due to the fact, that I did not specify
the server.code property at server startup.
Best regards,
Sebastian
Sebastian Konietzny wrote:
> Dear all,
>
> I am new to RMI and I am not so used to programming in Java anyway.
>
> I am writing you this email, because I have a problem with my small RMI
> testing scenario and until now I couldn't find an answer to my problem
> in the web.
>
> So, here is what my problem is about:
>
> I have a ServerApplication class that creates a remote object and
> imports the appropriate interface definition.
>
>
> ====================================================================
> package rpc_testing.server;
>
> import rpc_testing.rmi.RemoteProcessExecutableIF;
> import java.rmi.server.*;
> import java.rmi.registry.Registry;
> import java.rmi.registry.LocateRegistry;
>
> public class RpcTestServerApplication {
>
> public RpcTestServerApplication() {
> }
>
> public static void main(String[] args) {
> try {
> RapidMinerExecutioner rapExec = new RapidMinerExecutioner();
> RemoteProcessExecutableIF stub = (RemoteProcessExecutableIF)
> UnicastRemoteObject.exportObject(rapExec, 0);
>
> // Bind the remote object's stub in the registry
> Registry registry = LocateRegistry.getRegistry();
> registry.bind("RemoteProcessExecution", stub);
>
> System.err.println("Server ready");
> } catch (Exception e) {
> System.err.println("Server exception: " + e.toString());
> e.printStackTrace();
> }
> }
> }
> ===================================================================
>
>
> Starting the ServerApplication I receive the following Exceptions:
>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Server exception: java.rmi.ServerException: RemoteException occurred in
> server thread; nested exception is:
> java.rmi.UnmarshalException: error unmarshalling arguments; nested
> exception is:
> java.lang.ClassNotFoundException:
> rpc_testing.rmi.RemoteProcessExecutableIF
> java.rmi.ServerException: RemoteException occurred in server thread;
> nested exception is:
> java.rmi.UnmarshalException: error unmarshalling arguments; nested
> exception is:
> java.lang.ClassNotFoundException:
> rpc_testing.rmi.RemoteProcessExecutableIF
> at
> sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
> at sun.rmi.transport.Transport$1.run(Transport.java:153)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
> at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
>
> at java.lang.Thread.run(Thread.java:595)
> at
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
>
> at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
> at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
> at
> rpc_testing.server.RpcTestServerApplication.main(RpcTestServerApplication.java:20)
>
> Caused by: java.rmi.UnmarshalException: error unmarshalling arguments;
> nested exception is:
> java.lang.ClassNotFoundException:
> rpc_testing.rmi.RemoteProcessExecutableIF
> at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
> at
> sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
> at sun.rmi.transport.Transport$1.run(Transport.java:153)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
> at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
>
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.ClassNotFoundException:
> rpc_testing.rmi.RemoteProcessExecutableIF
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
> at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
> at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
> at
> java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
> at
> java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
> at
> sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
>
> at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> ... 9 more
>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
>
> The ServerApplication is running on the same computer as the
> "rmiregistry"-script. So, I doubt that my problem is about wrong
> settings of the Server codebase property! In fact I made no such
> settings so far.
>
>
> Can you help me and tell me what might be the problem?
>
>
> Best regards,
> Sebastian
>
===========================================================================
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff RMI-USERS". For general help, send email to
[email protected] and include in the body of the message "help".
For a list of frequently asked RMI questions please refer to:
http://java.sun.com/j2se/1.3/docs/guide/rmi/faq.html
To view past RMI-USERS postings, please see:
http://archives.java.sun.com/archives/rmi-users.html