Rumah > Java > javaTutorial > Mengapa Saya Mendapat \'java.rmi.ServerException: RemoteException Berlaku dalam Benang Pelayan (ClassNotFoundException)\' dalam Pelayan RMI Saya?

Mengapa Saya Mendapat \'java.rmi.ServerException: RemoteException Berlaku dalam Benang Pelayan (ClassNotFoundException)\' dalam Pelayan RMI Saya?

Linda Hamilton
Lepaskan: 2024-11-30 10:11:14
asal
481 orang telah melayarinya

Why Do I Get

"java.rmi.ServerException: RemoteException Berlaku dalam Benang Pelayan (ClassNotFoundException)"

Masalah:

Apabila cuba memulakan pelayan RMI, pengecualian berikut ialah dihadapi:

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
Salin selepas log masuk

Diagnosis:

Isu asas ialah Pejabat Pendaftaran RMI tidak dapat mencari kelas yang dirujuk dalam antara muka jauh. Ini boleh berlaku dalam beberapa situasi:

  • Mengeksport: Alat penjanaan rintisan (rmic) tidak dijalankan atau pengubahsuaian laluan kelas yang diperlukan yang diterangkan dalam mukadimah UnicastRemoteObject Javadoc tidak dilakukan .
  • Mengikat: Pejabat Pendaftaran tidak mempunyai stub, antara muka jauh atau kebergantungan mereka pada laluan kelasnya.
  • Mencari Ke Atas: Pelanggan tidak mempunyai kelas yang sama pada laluan kelasnya.
  • Memanggil Jauh Kaedah: Sama ada pelanggan menghantar objek kepada pelayan kelas yang tiada pada laluan kelasnya, atau pelayan mengembalikan objek kelas tiada pada laluan kelas pelanggan.

Penyelesaian:

Dalam kes khusus ini, masalah berkaitan dengan Pejabat Pendaftaran kehilangan kelas yang diperlukan pada laluan kelasnya. Untuk menyelesaikan isu ini, terdapat beberapa pilihan:

  • Mulakan Pendaftaran dengan CLASSPATH yang diubah suai yang merangkumi JAR atau direktori yang berkaitan.
  • Mulakan Pendaftaran menggunakan LocateRegistry.createRegistry() dalam JVM pelayan.
  • Gunakan stub dinamik seperti yang diterangkan dalam UnicastRemoteObject Javadoc. Walau bagaimanapun, ini mungkin memerlukan menangani isu pergantungan.
  • Pastikan kes (4) di atas tidak berlaku dengan mengesahkan ketekalan laluan kelas untuk pemindahan objek.
  • Pertimbangkan untuk menggunakan ciri pangkalan kod, dengan menyedari bahawa ini adalah pilihan penempatan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat \'java.rmi.ServerException: RemoteException Berlaku dalam Benang Pelayan (ClassNotFoundException)\' dalam Pelayan RMI Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan