Java.RMI.ServerException: RemoteException Berlaku dalam Benang Pelayan (Kelas Tidak Ditemui Pengecualian)
Apabila cuba memulakan pelayan menggunakan kod coretan yang diberikan, anda mungkin menghadapi pengecualian yang menyatakan "java.rmi.ServerException: RemoteException berlaku dalam utas pelayan; pengecualian bersarang ialah: java.rmi.UnmarshalException: ralat unmarshalling arguments; kelas yang diperlukan pada pelayan. Terdapat empat kemungkinan senario di mana pengecualian ini mungkin berlaku:
Mengeksport:- Dengan tidak menjalankan 'rmic' atau melangkau langkah yang diperlukan dalam mukadimah UnicastRemoteObject, anda boleh mencetuskan pengecualian ini.
Mengikat:- Pejabat Pendaftaran mungkin kekurangan rintisan, antara muka jauh, atau pergantungan pada laluan kelasnya.
Mencari Ke Atas:- Laluan kelas pelanggan mungkin tidak mempunyai kelas yang diperlukan.
Memanggil Kaedah Jauh:- Menghantar objek dengan kelas tidak hadir pada CLASSPATH pelayan atau menerima objek dengan kelas tidak hadir pada klien CLASSPATH boleh menyebabkan isu ini.
Dalam kes ini, ia adalah senario 2, di mana Pejabat Pendaftaran tidak dapat mengesan kelas yang ditentukan. Berikut ialah beberapa penyelesaian yang berpotensi:
Gunakan CLASSPATH Termasuk JAR:- Mulakan Pendaftaran dengan CLASSPATH yang merangkumi JAR atau direktori yang diperlukan.
Buat Pendaftaran dalam JVM Pelayan Anda:- Employ LocateRegistry.createRegistry() untuk memulakan Registry dalam JVM pelayan anda.
Gunakan Stub Dinamik:- Gunakan stub dinamik seperti yang diterangkan dalam UnicastRemoteObject Javadoc. Teknik ini mengimbangi potensi isu keserasian dengan antara muka atau kebergantungan jauh.
Cegah Senario (4):- Pastikan objek yang dihantar ke atau dari pelayan tidak mempunyai kelas yang hilang pada mana-mana CLASSPATH.
Atas ialah kandungan terperinci Mengapakah saya Mendapat \'java.rmi.ServerException: RemoteException\' dalam Pelayan RMI Java Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!