我有一个RMI程序,它在我的计算机上运行得很好,但是当我在学校的计算机上运行它时,我得到了一个用于我的班级的ClassNotFoundException,它是远程扩展的。我看过一些类似的问题,我的错误几乎相同,但那里提供的解决方案对我不起作用。我不能将参数传递给RMI注册表,因为它已经在运行并与其他学生共享。我尝试在程序中设置system.property,但无济于事。我也尝试过使用rmic,但也不起作用。
下面是来自Exception.getMessage()的错误消息:
Server exception: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: chordNode这些都是具有相同类型问题的问题。
发布于 2010-02-27 15:02:29
问题是使用由其他用户启动的rmiregistry。这意味着rmiregistry使用的类路径基于另一个用户环境。为了解决这个问题,我在另一个端口上启动了我自己的rmiregistry。
发布于 2010-02-27 07:03:58
java.lang.ClassNotFoundException: chordNode
在我看来,类"chordNote“不在类路径中。那是你的吗?如果是这样的话,您应该知道使用缺省包是一个坏主意,而且您的类名不遵循通常的Java命名约定。这两个对我来说都是不好的信号。
很难准确地说出哪里出了问题,因为你不会发布任何代码。
但既然你是一名学生,我建议你重新开始解决这个问题。当人们说“它在这台机器上运行得很好,但不能在那台机器上运行”时,它告诉我他们依赖于他们可能不完全理解的某些条件的真实性:
我不能将参数传递给
注册表,因为它已经在运行并与其他学生共享。
那么,这是您试图将RMI服务部署到的共享计算机吗?我将与服务器和RMI存储库的所有者交谈,看看如何将代码部署到那里。
或者,您可以启动自己的实例,在默认端口之外的其他端口上进行侦听。
我试着在我的程序中设置system.property,但是没有帮助。
对不起,你说的系统属性是什么?
我也试过使用rmic,但也不起作用。
如果要将代码从一台计算机移动到另一台计算机,为什么需要运行rmic?
“不起作用”是什么样子的?可能路径设置不正确。
对不起,你的问题太模糊了,无法回答。
https://stackoverflow.com/questions/2344798
复制相似问题