0

我有一个在我的计算机上运行良好的 RMI 程序,但是当我在我的学校计算机上运行它时,我得到了一个 ClassNotFoundException,因为我的班级正在扩展 Remote。我看过一些类似的问题,我的错误几乎相同,但那里提供的解决方案对我不起作用。我无法将参数传递给 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

这些是具有相同类型问题的问题。

rmi 类找不到异常

运行 rmi 服务器,classnotfound

4

2 回答 2

0

问题在于使用由另一个用户启动的 rmiregistry。这意味着 rmiregistry 使用的类路径是基于另一个用户环境的。为了解决这个问题,我在另一个端口上启动了我自己的 rmiregistry。

于 2010-02-27T07:02:29.207 回答
0

java.lang.ClassNotFoundException:和弦节点

在我看来,“chordNote”类不在类路径中。那是你的吗?如果是,您应该知道使用默认包是个坏主意,并且您的类名不遵循通常的 Java 命名约定。两者对我来说都是不好的迹象。

很难准确判断出了什么问题,因为您没有发布任何代码。

但由于您是一名学生,我建议您重新开始解决这个问题的方法。当人们说“它在这台机器上运行良好,但在那台机器上运行良好”之类的话时,它告诉我他们依赖于他们可能无法完全理解的某些条件是真的:

我无法将参数传递给 RMI 注册表,因为它已经在运行并与其他学生共享。

那么这是您尝试将 RMI 服务部署到的共享计算机吗?我会与服务器和 RMI 存储库的所有者交谈,以了解如何将代码部署在那里。

或者,您可以启动自己的实例,该实例侦听默认端口之外的另一个端口。

我尝试在我的程序中设置 system.property,但这没有帮助。

对不起,你的意思是什么系统属性?

我也尝试过使用 rmic 但这也不起作用。

如果要将代码从一台计算机移动到另一台计算机,为什么需要运行 rmic?

“没有工作”是什么样的?可能路径设置不正确。

抱歉,您的问题太模糊,无法回答。

于 2010-02-26T23:03:58.050 回答