2013-12-05 3 views
0

Я изучаю RMI самостоятельно. Я поместил все свои файлы в один и тот же каталог, и они работают хорошо. Но после того, как я отделяю сервер и клиент в другом каталоге, произойдет ошибка RemoteException java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.lang.ClassNotFoundException: CalculatorImpl_Stub (no security manager: RMI class loader disabled). я не знаю, как исправить it.and вот мой код:Удаленный вызов метода (в другом каталоге)

Server 
import java.rmi.Naming; 

public class CalculatorServer{ 
    public CalculatorServer(){ 
     try{ 
      Calculator c = new CalculatorImpl(); 
      Naming.rebind("rmi://localhost:1099/CalculatorService", c); 
     }catch(Exception e){ 
      System.out.println("Trouble: "+ e); 
     } 
    } 
    public static void main(String args[]){ 
     new CalculatorServer(); 
    } 
} 



Client 
import java.rmi.Naming; 
import java.rmi.RemoteException; 
import java.net.MalformedURLException; 
import java.rmi.NotBoundException; 
public class CalculatorClient{ 
public static void main(String[] args){ 
    try{ 
     Calculator c = (Calculator)Naming.lookup("rmi://localhost/CalculatorService"); 
     System.out.println(c.sub(4,3)); 
     System.out.println(c.add(4,5)); 
     System.out.println(c.mul(3,6)); 
     System.out.println(c.div(9,3)); 
    }catch(MalformedURLException murle){ 
     System.out.println(); 
     System.out.println("MalformedURLException"); 
     System.out.println(murle); 
    } 
    .... 
} 
+0

http://stackoverflow.com/questions/6322107/java-no-security-manager-rmi-class-loader-disabled может иметь ответы – zapl

ответ

0

Вы над разделенными. Некоторые из файлов .class являются общими для сервера и клиента. Класс, упомянутый в исключении, является одним из них, а также любые другие, которые появляются в последующих таких исключениях.

Смежные вопросы