Naming类的学习
Naming 类 
java.rmi.Naming 类提供存储和获得对远程对象注册服务程序中远程对象进行 
引用的方法。Naming 类中的方法以如下形式的,URL 格式的 java.lang.String 
作为其中的一个参数:
//host:port/name 
其中 host 是注册服务程序所在的主机(远程或本地),port 是注册服务程序 
接收调用的端口号,name 是注 册表未作出解释的简单字符串。host 和 port 
是可选的。如果省略了 host,则主机缺省值为本地 主机。如果省略了 port, 
则端口缺省值为 1099,即 RMI 系统注册服务程序 rmiregistry 所用的“众所 
周知”的端口。 
为远程对象绑定名称即为稍后使用的远程对象关联或注册名称,可用于查询该远 
程对象。可以使用 Naming 类的 bind 或 rebind 方法将远程对象与名称相关联 
。 
当远程对象已用 RMI 注册服务程序在本地主机上进行过注册(绑定)后,远程 
(或本地)主机上的调用程序就可以按名称查询远程对象、获得其引用,然后在 
对象上调用远程方法。必要时,某一主机上运行的服务器可以共享一个注册服务 
程序。 
服务器的各个进程也可创建和使用自己的注册服务程序 
(详细信息,参见 java.rmi.registry.LocateRegistry.createRegistry 方法) 
。 
package java.rmi; 
public final class Naming 
{ 
public static Remote lookup(String url) 
throws NotBoundException, java.net.MalformedURLException, 
RemoteExceptio 
n; 
public static void bind(String url, Remote obj) 
throws AlreadyBoundException, java.net.MalformedURLException, 
RemoteExce 
ption; 
public static void rebind(String url, Remote obj) 
throws RemoteException, java.net.MalformedURLException; 
public static void unbind(String url) 
throws RemoteException, NotBoundException, java.net.MalformedURLExce 
ptio 
n; 
public static String[] list(String url) 
throws RemoteException, java.net.MalformedURLException; 
} 
lookup 方法返回与名称的文件部分相关联的远程对象。如果名称未绑定到对象上 
,则抛出 NotBoundException。 
bind 方法将把指定名称绑定到远程对象上。如果该名称已绑定到某一对象上, 
则抛出 AlreadyBoundException。
rebind 方法总将名称绑定到对象上,无论该名称是否已绑定。原有绑定将丢失。
unbind 方法将取消名称和远程对象间的绑定。如果没有绑定,则抛出 NotBound 
Exception。 
list 方法返回一个 String 对象的数组,该对象包含注册服务程序中绑定 URL 
的快照。 
为了向注册服务程序查询其内容列表,只需要 URL 上的主机名和端口信息;因此 
,URL 的“file”部分将被忽略。 
注意 : 这些方法也可能抛出 java.rmi.AccessException。AccessException 表 
示调用程序无执 
行特定操作的权限。例如,只有运行注册服务程序的主机上的本地客户机才允许 
执行 bind、rebind 
和 unbind 操作。但任何非本地客户机都可调用 lookup 操作。  
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号