让我们使用JNDI API。我们尝试连接到目录服务器:
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");
env.put(Context.SECURITY_PRINCIPAL, "joeuser");
env.put(Context.SECURITY_CREDENTIALS, "joepassword");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
应用程序执行时它是如何工作的?为何需要 SPI?据我了解,客户端基于 JNDI 的应用程序向目录服务器发送请求,目录服务器使用特定的 SPI。该 SPI 解析来自客户端的请求并做出响应。因此,SPI 的工作方式就像 Java EE 中的 servlet。我的理解对吗?
最佳答案
how it works when application execute?
JNDI 查找适合您指定的 Context.PROVIDER_URL
的 JNDI SPI:在本例中为 LDAP 提供程序。
For what needs SPI?
见上文。
As i understand, client-side JNDI-based application sent request to directory server
停在那里。客户端向 JNDI 发送请求,JNDI 将其发送至 JNDI SPI,JNDI SPI 将其发送至目录服务器
whose use specific SPI.
没有。往上看。目录服务器不知道有关 JNDI SPI 的任何信息。
This SPI parse the request from client and responded.
没有。目录服务器做到了这一点。
Thus SPI works like servlets in Java EE.
没有。
Is my understandig right?
没有。
关于java - JNDI API 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211629/