java rmi重新连接客户端问题

时间:2011-04-28 10:24:42

标签: java rmi

我正在尝试开发一个简单的服务器/客户端程序usrin java rmi。到目前为止,一切似乎都运行良好,但唯一的问题是,当客户端退出并尝试重新连接时,我会得到以下异常:

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.ConnectException: Connection refused to host: 192.168.x.y; nested exception is: 
    java.net.ConnectException: Connection refused: connect

为什么服务器第二次拒绝连接?

这是我的代码

服务器:

public static void main(String[] args) {
    try {

        Naming.rebind("ChatServer", new ChatServerImpl());

        Naming.rebind("NotificationSource",  nsource);

        System.out.println("Chat Server is up and runnning!");

    } catch (Exception e) {
        System.err.println("Problem!!!!");
        e.printStackTrace();
    }
}

“聊天服务器”和“nsource”(nsource是静态的)是扩展“远程”接口的UnicastRemoteObject对象。 (“ChatServer”和“NotificationInterface”)。

客户端

public static void main(String[] args) {

    String url_ChatServer = "rmi://localhost/ChatServer";
    String url_NotificationSource = "rmi://localhost/NotificationSource";

    try {

        ChatServer cs = (ChatServer) Naming.lookup(url_ChatServer);

        NotificationSourceInterface ns = (NotificationSourceInterface) Naming.lookup(url_NotificationSource);

        new Thread(new ChatClientImpl(cs,ns)).start();

    } catch (Exception e) {
        System.err.println("Problem ~Client");
        e.printStackTrace();
    }
}

我没有使用rmic,因为它不再需要(因为java 1.5)

THX

1 个答案:

答案 0 :(得分:1)

如果您在查找中获得该信息,则注册表已关闭。如果你让它调用远程方法,它的JVM就会退出。