Java RMI激活奇异问题

Java RMI激活奇异问题,java,rmi,codebase,Java,Rmi,Codebase,我正试图让一个RMI可激活的服务器工作-但到目前为止没有运气。实际上,服务器似乎在运行,但客户端触发了一个奇怪的异常 我有3个项目: 客户 普通 服务器 常见的是客户端和服务器之间的共享代码(如远程接口) 我遵循的步骤(一直在调整): 启动注册表-->确定 运行rmid-->确定 启动服务器安装-->确定 启动客户端-->轰!激活失败,因为在服务器线程中找不到具有NoClassDefFoundError的公共类 我在服务器的代码库中包含了公共类文件,因此服务器应该可以使用这些类/接口。它

我正试图让一个RMI可激活的服务器工作-但到目前为止没有运气。实际上,服务器似乎在运行,但客户端触发了一个奇怪的异常

我有3个项目:

  • 客户
  • 普通
  • 服务器
常见的是客户端和服务器之间的共享代码(如远程接口)

我遵循的步骤(一直在调整):

  • 启动注册表-->确定
  • 运行rmid-->确定
  • 启动服务器安装-->确定
  • 启动客户端-->轰!激活失败,因为在服务器线程中找不到具有NoClassDefFoundError的公共类
我在服务器的代码库中包含了公共类文件,因此服务器应该可以使用这些类/接口。它会在远程接口本身上烧坏-因此唯一的选择似乎是将所有公共代码拉入服务器代码中,但这样一来,客户端代码就必须知道服务器代码,而服务器代码非常糟糕

我浏览了一下,似乎也遇到了同样的问题

在这两种情况下,当可激活服务器引用其他包中的类时(在我的情况下,它是第三方链接中的自定义包),就会发生这种情况

我在这里真的不知所措,所以任何想法都将不胜感激


编辑:一些附加信息-我正在尝试调试问题。客户端似乎很好地检索了subject中的远程对象(引用不是null)。调用远程接口(客户机知道该接口)的方法时,将立即引发异常。如果激活发生在第一次方法调用时,那么这是很明显的-但不太确定它实际尝试激活远程对象/服务器的时间。

在安装过程中,是否在服务器上可激活类的位置包含了common包中的类?如果有多条路径,请确保用空格分隔它们。

错误。。。实际上,我在ActivationDesc的location参数中缺少了公共类的路径。。。非常感谢你发现了这一点!