📄 jndi.html
字号:
<?xml version="1.0" encoding="GB2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN"><head> <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> <meta name="keywords" content="electronic commerce, ecommerce, ebusiness, e-business, e-commerce, enterprise software, net economy, Sun Microsystems, Sun Open Net Environment, Sun ONE, internet software" /> <meta name="Description" content="Sun Microsystems, Inc. is delivering Sun ONE e-commerce software and enterprise solutions that enable companies to compete successfully in the Net Economy." /> <meta name="TemplateVersion" content="Sun ONE WDT 2.3.1" /> <meta name="LASTUPDATED" content="10/03/03 09:48:15" /> <meta name="BookTitle" content="Sun Java System Application Server Enterprise Edition 8.1 Administration Guide 2005Q1" /> <title>第 10 章 JNDI 资源</title> <link href="catalog.css" tppabs="http://docs.sun.com/source/819-1553/catalog.css" rel="stylesheet" type="text/css" /> <!-- on load bring this window to front --> <script laguage="javascript"> top.window.focus(); </script></head><body text="#000000" link="#594FBF" vlink="#9966cc" alink="#333366" bgcolor="#FFFFFF"><a name="top"> </a><!-- navigation --> <table width="100%" border="0" cellspacing="4" summary="Header navigation table"> <tr><td> <p class="pNavigation"> <a HREF="javascript:if(confirm('http://www.sun.com/software/ \n\n该文件无法用 Teleport Ultra 下载, 因为 它是一个域或路径外部被设置为它的启始地址的地址。 \n\n你想在服务器上打开它?'))window.location='http://www.sun.com/software/'" tppabs="http://www.sun.com/software/"> <img SRC="Logo.jpg" tppabs="http://docs.sun.com/source/819-1553/Logo.jpg" alt="Sun logo" valign="bottom" border="0" /></a>      <a href="javamail.html" tppabs="http://docs.sun.com/source/819-1553/javamail.html">上一页</a>      <a href="index.html" tppabs="http://docs.sun.com/source/819-1553/index.html">目录</a>      <a href="connector.html" tppabs="http://docs.sun.com/source/819-1553/connector.html">下一页</a>      </p> </td></tr> <tr><td valign="top" align="right" bgcolor="#594FBF"> <span class="cBookTitle">Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1</span> </td></tr> </table><!-- end navigation --><blockquote><!-- chapter content --><a name="wp201600"> </a><h2 class="pChapNumber"><span class="cGray">第 10 章</span><br /><a name="wp201602"> </a>JNDI 资源</h2><a name="wp201604"> </a><p class="pParagraph">本章介绍了如何使用管理控制台来配置 JNDI 资源。它包含以下各节:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp201610"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201626" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201626">关于 Java 命名和目录接口 (JNDI)</a></li></div><a name="wp201616"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201723" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201723">关于自定义资源</a></li></div><a name="wp201622"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201947" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201947">关于外部 JNDI 系统信息库和资源</a></li></div></ul></div><a name="wp201626"> </a><h2 class="pHeading1"><hr />关于 Java 命名和目录接口 (JNDI)</h2><a name="wp201628"> </a><p class="pParagraph">本节将讨论 Java 命名和目录接口 (JNDI)。JNDI 是用于访问不同种类的命名和目录服务的应用程序编程接口 (API)。J2EE 组件通过调用 JNDI 查找方法来定位对象。</p><a name="wp201630"> </a><p class="pParagraph">本节包括以下主题:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp201636"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201656" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201656">JNDI 名称和资源</a></li></div><a name="wp201642"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201672" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201672">J2EE 命名服务</a></li></div><a name="wp201648"> </a><div class="pSmartList1"><li><a href="jndi.html#wp201698" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201698">命名引用和绑定信息</a></li></div></ul></div><a name="wp201656"> </a><h3 class="pHeading2">JNDI 名称和资源</h3><a name="wp201658"> </a><p class="pParagraph">JNDI 是 Java 命名和目录接口 API 的首字母缩略词。通过对此 API 进行调用,应用程序可以定位资源和其他程序对象。资源是提供到系统(如数据库服务器和消息传送系统)的连接的程序对象。(JDBC 资源有时被称为数据源。)每个资源对象都是由唯一的友好名称所标识,称为 JNDI 名称。Application Server 附带的命名和目录服务将资源对象及其 JNDI 名称绑定在一起。要创建新资源,需要将新的名称-对象绑定输入到 JNDI 中。</p><a name="wp201672"> </a><h3 class="pHeading2">J2EE 命名服务</h3><a name="wp201676"> </a><p class="pParagraph">JNDI 名称是便于用户使用的对象名称。这些名称通过 J2EE 服务器提供的命名和目录服务绑定到其对象。由于 J2EE 组件通过 JNDI API 访问此服务,因此对象通常使用其 JNDI 名称。例如,Pointbase 数据库的 JNDI 名称为 <code class="cCode">jdbc/Pointbase</code>。当 Sun Java System Application Server 启动时,将从配置文件中读取信息,并自动将 JNDI 数据库名称添加到名称空间。</p><a name="wp201678"> </a><p class="pParagraph">J2EE 应用程序客户机、企业 Bean 以及 Web 组件都需要具有权限,才能访问 JNDI 命名环境。 </p><a name="wp201680"> </a><p class="pParagraph">应用程序组件的命名环境是一种机制,使用它可以在部署或汇编期间自定义应用程序组件的商业逻辑。使用应用程序组件的环境即可对应用程序组件进行自定义,而无需访问或更改应用程序组件的源代码。</p><a name="wp201682"> </a><p class="pParagraph">J2EE 容器实现 J2EE 应用程序组件的环境,并将该环境作为 JNDI 命名上下文提供给 J2EE 应用程序组件实例。J2EE 应用程序组件的环境的使用方式如下:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp201684"> </a><div class="pSmartList1"><li>应用程序组件的商业方法使用 JNDI 接口访问该环境。应用程序组件提供商在部署描述符中声明应用程序组件需要其运行时环境提供的所有环境项。</li></div><a name="wp201686"> </a><div class="pSmartList1"><li>容器实现存储应用程序组件环境的 JNDI 命名上下文。容器还提供了部署者可以用于创建和管理每个应用程序组件的环境的工具。</li></div><a name="wp201688"> </a><div class="pSmartList1"><li>部署者使用容器提供的工具,可以初始化应用程序组件的部署描述符中声明的环境项。部署者可以设置和修改环境条目的值。</li></div><a name="wp201690"> </a><div class="pSmartList1"><li>容器使环境命名上下文在运行时可用于应用程序组件实例。应用程序组件的实例使用 JNDI 接口获取环境项的值。</li></div></ul></div><a name="wp201692"> </a><p class="pParagraph">每个应用程序组件定义了其本身的环境项集合。一个应用程序组件在同一容器内的所有实例共享相同的环境项。不允许应用程序组件实例在运行时修改环境。</p><a name="wp201698"> </a><h3 class="pHeading2">命名引用和绑定信息</h3><a name="wp201702"> </a><p class="pParagraph">资源引用是部署描述符中的一种元素,用于标识该资源的组件的编码名称。更具体地说,编码名称引用资源的连接工厂。在下节给出的示例中,资源引用名称是 <code class="cCode">jdbc/SavingsAccountDB</code>。</p><a name="wp201706"> </a><p class="pParagraph">资源的 JNDI 名称与资源引用的名称是不同的。使用此命名方法,您需要在进行部署之前先映射这两个名称,但此方法也用于将组件与资源分离开。由于具有此分离功能,因此如果组件在以后需要访问其他资源,则无需更改名称。这一灵活性使您可以更加容易地从先前存在的组件汇编 J2EE 应用程序。</p><a name="wp201714"> </a><p class="pParagraph"><a href="jndi.html#wp201283" tppabs="http://docs.sun.com/source/819-1553/jndi.html#wp201283">表 10-1</a> 列出了用于 Sun Java System Application Server 所使用的 J2EE 资源的 JNDI 查找及其关联的引用。</p><a name="wp201717"> </a><p class="pAnchor"></p><div align="left"><table border="1" cellpadding="5" cellspacing="0" id="wp201283"> <caption><a name="wp201283"> </a><p class="pCaption">表 10-1 JNDI 查找及其关联的引用</p></caption> <tr bgcolor="#cdccee" align="left" valign="top"> <th scope="col"><a name="wp201289"> </a><p class="pTableHead">JNDI 查找名称</p></th> <th scope="col"><a name="wp201291"> </a><p class="pTableHead">关联的引用</p></th></tr> <tr align="left" valign="top"> <td><a name="wp201297"> </a><p class="pTableText"><code class="cCode">java:comp/env</code></p></td> <td><a name="wp201299"> </a><p class="pTableText">应用程序环境项</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201305"> </a><p class="pTableText"><code class="cCode">java:comp/env/jdbc</code></p></td> <td><a name="wp201307"> </a><p class="pTableText">JDBC 数据源资源管理器连接工厂</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201313"> </a><p class="pTableText"><code class="cCode">java:comp/env/ejb</code></p></td> <td><a name="wp201315"> </a><p class="pTableText">EJB 引用</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201321"> </a><p class="pTableText"><code class="cCode">java:comp/UserTransaction</code></p></td> <td><a name="wp201323"> </a><p class="pTableText">UserTransaction 引用</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201329"> </a><p class="pTableText"><code class="cCode">java:comp/env/mail</code></p></td> <td><a name="wp201331"> </a><p class="pTableText">JavaMail 会话连接工厂</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201337"> </a><p class="pTableText"><code class="cCode">java:comp/env/url</code></p></td> <td><a name="wp201339"> </a><p class="pTableText">URL 连接工厂</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201345"> </a><p class="pTableText"><code class="cCode">java:comp/env/jms</code></p></td> <td><a name="wp201347"> </a><p class="pTableText">JMS 连接工厂和目标</p></td></tr> <tr align="left" valign="top"> <td><a name="wp201353"> </a><p class="pTableText"><code class="cCode">java:comp/ORB</code></p></td> <td><a name="wp201355"> </a><p class="pTableText">应用程序组件之间共享的 ORB 实例</p></td></tr></table></div><p class="pAnchor"></p><a name="wp201723"> </a><h2 class="pHeading1"><hr />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -