gpt4 book ai didi

java - RMI激活奇怪的问题

转载 作者:行者123 更新时间:2023-11-30 09:57:09 26 4
gpt4 key购买 nike

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

我有 3 个项目:

  • 客户
  • 常见
  • 服务器

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

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

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

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

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

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

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

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

最佳答案

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

关于java - RMI激活奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1968048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com