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
365 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!

sumber:php.cn
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