【问题标题】:RMI Activation Strange problemRMI 激活奇怪问题
【发布时间】:2009-12-28 05:03:58
【问题描述】:

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

我有 3 个项目:

  • 客户
  • 常见
  • 服务器

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

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

  • 启动注册表 --> 确定
  • 运行 rmid --> 确定
  • 开始服务器设置 --> 确定
  • 启动客户端 --> BOOM!激活失败,因为在服务器线程中找不到带有 NoClassDefFoundError 的 common 中的类

我在服务器的代码库中包含了公共类文件,因此这些类/接口应该可供服务器使用。它在远程接口本身上消失了——所以唯一的选择似乎是将所有公共代码拉到服务器代码中,但是这样客户端代码将不得不知道服务器代码,这很糟糕。

我浏览了一下,看起来this guy here 遇到了完全相同的问题。

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

我真的很迷茫 - 所以任何想法都会受到赞赏!

编辑:一些附加信息 - 我正在尝试调试问题。客户端似乎很好地检索了主题中的远程对象(引用不为空)。一旦调用远程接口的方法(客户端知道该接口),就会抛出异常。如果激活发生在第一个方法调用上,那么这很明显 - 但不太确定它何时实际尝试激活远程对象/服务器。

【问题讨论】:

    标签: java rmi codebase


    【解决方案1】:

    您是否在设置期间将 common 包中的类包含在服务器上可激活类的位置?如果您有多个路径,请确保用空格分隔它们。

    【讨论】:

    • err ...我实际上错过了 ActivationDesc 的位置参数上的 common 类的路径 ...非常感谢您发现这个!
    猜你喜欢
    • 2016-11-10
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2011-05-16
    相关资源
    最近更新 更多