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

📄 e190. passing parameters to a remote method.txt

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

    import java.rmi.*;
    
    public interface RObject extends Remote {
        // This parameter is primitive.
        void primitiveArg(int num) throws RemoteException;
    
        // This parameter implements Serializable.
        void byValueArg(Integer num) throws RemoteException;
    
        // This parameter implements Remote.
        void byRefArg(ArgObject arg) 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 void primitiveArg(int num) throws RemoteException {
        }
        public void byValueArg(Integer num) throws RemoteException {
        }
        public void byRefArg(ArgObject arg) throws RemoteException {
        }
    }

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 and pass the parameters. 
    try {
        // Look up the remote object
        RObject robj = (RObject) Naming.lookup("//localhost/RObjectServer");
    
        // Pass a primitive value as argument
        robj.primitiveArg(1998);
    
        // Pass a serializable object as argument
        robj.byValueArg(new Integer(9));
    
        // Pass a Remote object as argument
        robj.byRefArg(new ArgObjectImpl());
    } catch (MalformedURLException e) {
    } catch (UnknownHostException e) {
    } catch (NotBoundException e) {
    } catch (RemoteException e) {
    }

⌨️ 快捷键说明

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