gpt4 book ai didi

java - 在 Windows 7 上使用 RMI

转载 作者:行者123 更新时间:2023-12-01 15:21:07 25 4
gpt4 key购买 nike

我是在 Windows 7 上使用 RMI 的新手,我想使用 RMI 运行我的项目以显示“HelloWorld”,但我无法运行它,因为我收到以下错误。任何人都可以帮助我。我也使用过 JDK 1.6。

我的错误是:

java.rmi.UnmarshalException:解码参数时出错;嵌套异常是:

    java.lang.ClassNotFoundException: Hello_Stub

最佳答案

可以通过三种方式获得此异常:

  1. 构建/导出远程对象时。在这种情况下,如果您的远程对象扩展了 UnicastRemoteObjectUnicastRemoteObject,则意味着您尚未向 super(int port...) 提供端口号参数.exportObject() 否则,并且您还没有通过rmic生成 stub 。请注意,如果您提供端口号参数,即使是零,您也根本不需要运行 rmic

  2. 将远程对象绑定(bind)/重新绑定(bind)到注册表(在服务器中)时。在这种情况下,这意味着您没有像上面那样提供端口号等,但是您已经生成了 stub ,否则您不会走到这一步,因为 (1),但是 _Stub 类不是注册表在其 CLASSPATH 上不可用。最简单的解决方案是通过 LocateRegistry.createRegistry() 在同一个 JVM 中运行注册表。请注意,此方法的返回值需要存储在不会被垃圾收集的地方,例如在静态变量中。

  3. (在客户端中)查找注册表时。在这种情况下,这意味着您没有提供上面的端口号等,但您已经生成了 stub ,否则您将不会因为 (1) 和 (2) 而走到这一步,但是 _Stub 类在其 CLASSPATH 上对客户端不可用。解决方案:部署到客户端。

关于java - 在 Windows 7 上使用 RMI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919478/

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