e192. throwing an exception from a remote method.txt

来自「这里面包含了一百多个JAVA源文件」· 文本 代码 · 共 53 行

TXT
53
字号
1. Define the remote interface. 
    import java.rmi.*;
    
    public interface RObject extends Remote {
        void aMethod() throws RemoteException;
    }

2. Define the remote object implementation. 
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    
    public class RObjectImpl extends UnicastRemoteObject implements RObject {
        public RObjectImpl() throws RemoteException {
            super();
        }
        public void aMethod() throws RemoteException {
            // The actual exception must be wrapped in a RemoteException
            throw new RemoteException("message", new FileNotFoundException("message"));
        }
    }

3. Compile the remote object implementation. 
    > javac RObject.java RObjectImpl.java

4. Generate the skeletons and stubs. 
    > rmic RObjectImpl


5. Create an instance of the remote object and bind it to the RMI registry. 
    try {
        RObject robj = new RObjectImpl();
        Naming.rebind("//localhost/RObjectServer", robj);
    } catch (MalformedURLException e) {
    } catch (UnknownHostException e) {
    } catch (RemoteException e) {
    }

6. Look up the remote object, invoke the method, and catch the exception. 
    try {
        // Look up the remote object.
        RObject robj = (RObject) Naming.lookup("//localhost/RObjectServer");
    
        // Invoke the method.
        robj.aMethod();
    } catch (MalformedURLException e) {
    } catch (UnknownHostException e) {
    } catch (NotBoundException e) {
    } catch (RemoteException e) {
        // Get the actual exception that was thrown.
        Throwable realException = e.detail;
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?