关于RMI的问题,作业,急求问题原因
我在写了一个很简单的测试程序,发现没有办法运行。请大家指点。
代码如下:
import java.rmi.Remote;
public interface SerInterface extends Remote{
}
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ServerImpl extends UnicastRemoteObject implements SerInterface {
private static final long serialVersionUID = 1L;
public ServerImpl()throws RemoteException{
System.out.println("server is strating ...");
}
public void f(){
System.out.println("a client call");
}
}
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
public class Server {
public static void main(String[] args) {
System.out.println("a client is strating...");
System.out.println("hello");
try {
LocateRegistry.createRegistry(1099);
ServerImpl si = new ServerImpl();
System.out.println("binging server...");
Naming.rebind("server",si);
System.out.println("waiting for invocations from clients...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.rmi.Naming;
public class Client{
public static void main(String[] args){
try {
ServerImpl s = (ServerImpl)Naming.lookup("server");
s.f();
} catch (Exception e) {
e.printStackTrace();
}
}
}
java.lang.ClassCastException: $Proxy0 cannot be cast to ServerImpl
服务器可以跑起来,客户端是不行的。
请问是什么原因呀?