运行 rmi 服务器,classnotfound [英] running rmi server, classnotfound

查看:50
本文介绍了运行 rmi 服务器,classnotfound的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行一个将类绑定到命名服务器的 Java 应用程序,但我经常收到 ClassNotFoundException

Hi I'm trying to run a java application that binds a class to the naming server, but i constantly get a ClassNotFoundException

首先我启动注册表:

rmirregistry

rmiregistry

然后从 Eclipse 我尝试执行服务器但收到此错误

then from eclipse I try to execute the server but get this error

java.rmi.ServerException: 服务器线程发生远程异常;嵌套异常是:java.rmi.UnmarshalException: 解组参数错误;嵌套异常是:java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory在 sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396)在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)在 sun.rmi.transport.Transport$1.run(Transport.java:159)在 java.security.AccessController.doPrivileged(Native Method)在 sun.rmi.transport.Transport.serviceCall(Transport.java:155)在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)在 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)在 sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)在 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)在 sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359)在 sun.rmi.registry.RegistryImpl_Stub.rebind(来源不明)在 progInternet2008.Pozzobon.tesi.Slave.main(Slave.java:54)引起:java.rmi.UnmarshalException:错误解组参数;嵌套异常是:java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory在 sun.rmi.registry.RegistryImpl_Skel.dispatch(来源不明)在 sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:386)在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)在 sun.rmi.transport.Transport$1.run(Transport.java:159)在 java.security.AccessController.doPrivileged(Native Method)在 sun.rmi.transport.Transport.serviceCall(Transport.java:155)在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)在 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)引起:java.lang.ClassNotFoundException:progInternet2008.commons.NominabileFactory在 java.net.URLClassLoader$1.run(URLClassLoader.java:200)在 java.security.AccessController.doPrivileged(Native Method)在 java.net.URLClassLoader.findClass(URLClassLoader.java:188)在 java.lang.ClassLoader.loadClass(ClassLoader.java:307)在 java.lang.ClassLoader.loadClass(ClassLoader.java:252)在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)在 java.lang.Class.forName0(Native Method)在 java.lang.Class.forName(Class.java:247)在 sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:711)在 sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:655)在 sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:592)在 java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)在 java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)在 sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)在 java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531)在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)……还有 12 个

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 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: error unmarshalling arguments; nested exception is: 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) 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) Caused by: java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory 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:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:711) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:655) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:592) 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:1531) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ... 12 more

我已经阅读了 RMI Java 教程,但仍然无法让它工作......

I've read the RMI Java tutorial but still could not get it working...

作为 VM 参数,我已设置:

As VM Arguments I've set this:

-Djava.rmi.server.codebase=file:${workspace_loc}/progInternet2008

-Djava.rmi.server.codebase=file:${workspace_loc}/progInternet2008

请帮帮我

(我使用的是 Java 6)

(I'm using Java 6)

推荐答案

从您的/bin、/build 或/build/classes 文件夹中运行 rmiregisrty 命令,无论哪个文件夹是您的根目录构建的文件.

Run the rmiregisrty command from your /bin, /build, or /build/classes folder, whichever folder is the root of your built files.

我花了半天时间试图解决同样的问题.

I spent half a day trying to solve that same thing.

这篇关于运行 rmi 服务器,classnotfound的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆