⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e191. returning values from a remote method.txt

📁 这里面包含了一百多个JAVA源文件
💻 TXT
字号:
Return values from remote methods must be primitive, serializable, or implement Remote. This example demonstrates the declaration and use of all three return types. 
1. Define the remote interface. 

    import java.rmi.*;
    
    public interface RObject extends Remote {
        // This return value is primitive.
        int primitiveRet() throws RemoteException;
    
        // This return value implements Serializable.
        Integer byValueRet() throws RemoteException;
    
        // This return value implements Remote.
        ArgObject byRefRet() throws RemoteException;
    }
    
    public interface ArgObject extends Remote {
        int 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 int primitiveRet() throws RemoteException {
            return 3000;
        }
        public Integer byValueRet() throws RemoteException {
            return new Integer(2000);
        }
        public ArgObject byRefRet() throws RemoteException {
            return new ArgObjectImpl();
        }
    }

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 methods, and receive the return values. 
    try {
        // Look up the remote object
        RObject robj = (RObject) Naming.lookup("//localhost/RObjectServer");
    
        // Receive the primitive value as return value
        int r1 = robj.primitiveRet();
    
        // Receive the serializable object as return value
        Integer r2 = robj.byValueRet();
    
        // Receive the Remote Object as return value
        ArgObject aobj =  robj.byRefRet();
    } catch (MalformedURLException e) {
    } catch (UnknownHostException e) {
    } catch (NotBoundException e) {
    } catch (RemoteException e) {
    }

⌨️ 快捷键说明

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