首頁 > 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)」

問題:

問題:
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
登入後複製

嘗試啟動RM​​I伺服器時,出現以下異常遇到:

診斷:

  • 根本問題是 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板