首页 > Java > java教程 > 为什么我的 RMI 服务器中出现'java.rmi.ServerException:服务器线程中发生 RemoteException (ClassNotFoundException)”?

为什么我的 RMI 服务器中出现'java.rmi.ServerException:服务器线程中发生 RemoteException (ClassNotFoundException)”?

Linda Hamilton
发布: 2024-11-30 10:11:14
原创
365 人浏览过

Why Do I Get

“java.rmi.ServerException:服务器线程中发生 RemoteException (ClassNotFoundException)”

问题:

尝试启动 RMI 服务器时,出现以下异常遇到:

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
        java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
        java.lang.ClassNotFoundException: Interfaces.RemoteMethodIntf
登录后复制

诊断:

根本问题是 RMI 注册表找不到远程接口中引用的类。这可能在多种情况下发生:

  • 导出: 未运行存根生成工具 (rmic) 或未执行 UnicastRemoteObject Javadoc 序言中描述的必要类路径修改.
  • 绑定:注册表没有存根,远程接口,或其类路径上的依赖项。
  • 查找:客户端在其类路径上没有相同的类。
  • 调用远程方法: 客户端将一个对象发送到其类路径上缺少的类的服务器,或者服务器返回客户端上缺少的类的对象classpath.

解决方案:

在这种特殊情况下,问题与注册表在其类路径上缺少必要的类有关。要解决此问题,有多种选择:

  • 使用包含相关 JAR 或目录的修改后的 CLASSPATH 启动注册表。
  • 使用其中的 LocateRegistry.createRegistry() 启动注册表服务器的 JVM。
  • 按照 UnicastRemoteObject Javadoc 中的描述利用动态存根。但是,这可能需要解决依赖性问题。
  • 通过验证对象传输的类路径一致性,确保不会发生上述情况 (4)。
  • 考虑使用代码库功能,认识到这是一个部署选项。

以上是为什么我的 RMI 服务器中出现'java.rmi.ServerException:服务器线程中发生 RemoteException (ClassNotFoundException)”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板