Naming.bind和Registry.bind区别

Naming类和Registry类均在java.rmi包,Naming类并非在javax.naming包。

Naming源码:

    public static void bind(String name, Remote obj)
        throws AlreadyBoundException,
            java.net.MalformedURLException,
            RemoteException
    {
        ParsedNamingURL parsed = parseURL(name);
        Registry registry = getRegistry(parsed);
 
        if (obj == null)
            throw new NullPointerException("cannot bind to null");
 
        registry.bind(parsed.name, obj);
    }
    private static Registry getRegistry(ParsedNamingURL parsed)
        throws RemoteException
    {
        return LocateRegistry.getRegistry(parsed.host, parsed.port);
}

例子:

    LocateRegistry.getRegistry("127.0.0.1", 8494).bind("R1", 
            UnicastRemoteObject.exportObject(new RemoteObject(), 0));
    
    Naming.bind("rmi://127.0.0.1:8494/R1", 
            UnicastRemoteObject.exportObject(new RemoteObject (), 0));

你可能感兴趣的:(rmi)