0

我有以下为 JRMP 和 IIOP 导出自己的服务器类:

public class FooServer implements RemoteInt{
    FooServer(){
        UnicastRemoteObject.exportObject(this);
        PortableRemoteObject.exportObject(this);
    }

    public boolean remoteMethod() throws RemoteException{
        // some stuff
        return false;
    }
}

以及以下创建服务器并将其注册到正在运行的寄存器的安装程序类:

public class Setup{
    public static void main(String[] args){
        RemoteInt serv = new FooServer();
        Naming.rebind("//localhost/server", this);
    }
}

问题是当安装程序完成它的工作时,它会等待 FooServer 终止。相反,我想退出 Setup 类,让 FooServer 运行。我能怎么做?

4

1 回答 1

0

你不能。远程对象是从当前 JVM 中导出的,它会一直运行,直到您取消导出它为止。请注意,main() 方法确实退出了,但 RMI/JRMP 和 RMi/IIOP 侦听线程仍在运行,因此 JVM 不会退出。

于 2012-10-03T16:21:41.690 回答