远程方法调用(不同目录)

时间:2013-12-05 03:42:52

标签: java rmi

我现在正在学习RMI。我将所有文件放在同一个目录中并且运行良好。但是在我将服务器和客户端分开到不同的目录后,会出现错误  RemoteException java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.lang.ClassNotFoundException: CalculatorImpl_Stub (no security manager: RMI class loader disabled)。        我不知道如何解决它。这是我的代码:

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);
    }
    ....
}

1 个答案:

答案 0 :(得分:0)

你过分了。某些.class文件对于服务器和客户端都是通用的。异常中提到的类是其中之一,在随后的此类异常中出现的任何其他类也是如此。