如果JNDI
在lookup
时没有指定初始化工厂名称,会自动根据协议类型动态查找内置的工厂类然后创建处理对应的服务请求。JNDI
默认支持自动转换的协议有:
协议名称 | 协议URL | Context类 |
---|---|---|
DNS协议 | dns:// |
com.sun.jndi.url.dns.dnsURLContext |
RMI协议 | rmi:// |
com.sun.jndi.url.rmi.rmiURLContext |
LDAP协议 | ldap:// |
com.sun.jndi.url.ldap.ldapURLContext |
LDAP协议 | ldaps:// |
com.sun.jndi.url.ldaps.ldapsURLContextFactory |
IIOP对象请求代理协议 | iiop:// |
com.sun.jndi.url.iiop.iiopURLContext |
IIOP对象请求代理协议 | iiopname:// |
com.sun.jndi.url.iiopname.iiopnameURLContextFactory |
IIOP对象请求代理协议 | corbaname:// |
com.sun.jndi.url.corbaname.corbanameURLContextFactory |
RMI示例代码片段:**
// 创建JNDI目录服务上下文
InitialContext context = new InitialContext();
// 查找JNDI目录服务绑定的对象
Object obj = context.lookup("rmi://127.0.0.1:9527/test");
示例代码通过lookup
会自动使用rmiURLContext
处理RMI
请求。