您好,我正在尝试运行一个将类绑定到命名服务器的Java应用程序,但是我一直收到ClassNotFoundException的错误。
首先,我启动注册表:
rmiregistry
然后从Eclipse中尝试执行服务器,但出现以下错误:
在"sun.rmi.transport.Transport$1.run(Transport.java:159)"处发生异常。 在"java.security.AccessController.doPrivileged(Native Method)"执行特权代码。 "sun.rmi.transport.Transport.serviceCall(Transport.java:155)"调用RMI服务。 "sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)"处理TCP传输中的消息。 "sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)"运行TCP连接的处理程序。 "sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)"运行TCP连接的处理程序。 "java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)"运行线程池工人任务。 "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)"运行线程池工人。 "java.lang.Thread.run(Thread.java:619)"运行线程。 由于找不到 "progInternet2008.commons.NominabileFactory"类,抛出"java.lang.ClassNotFoundException"异常。 在"java.net.URLClassLoader.findClass(URLClassLoader.java:188)"中查找类。 通过反射加载了代理接口,但找不到类,因此无法解析代理类。作为 VM 参数,我设置了以下内容:java.rmi.ServerException:服务器线程中发生RemoteException;嵌套异常是: java.rmi.UnmarshalException:错误取消编组参数;嵌套异常是: java.lang.ClassNotFoundException:progInternet2008.commons.NominabileFactory 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:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at progInternet2008.Pozzobon.tesi.Slave.main(Slave.java:54) Caused by: java.rmi.UnmarshalException:错误取消编组参数;嵌套异常是: java.lang.ClassNotFoundException:progInternet2008.commons.NominabileFactory 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)
请帮助我。 (我正在使用 Java 6)-Djava.rmi.server.codebase=file:${workspace_loc}/progInternet2008