Sun logo      上一页      目录      下一页     

Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1

第 10 章
JNDI 资源

本章介绍了如何使用管理控制台来配置 JNDI 资源。它包含以下各节:


关于 Java 命名和目录接口 (JNDI)

本节将讨论 Java 命名和目录接口 (JNDI)。JNDI 是用于访问不同种类的命名和目录服务的应用程序编程接口 (API)。J2EE 组件通过调用 JNDI 查找方法来定位对象。

本节包括以下主题:

JNDI 名称和资源

JNDI 是 Java 命名和目录接口 API 的首字母缩略词。通过对此 API 进行调用,应用程序可以定位资源和其他程序对象。资源是提供到系统(如数据库服务器和消息传送系统)的连接的程序对象。(JDBC 资源有时被称为数据源。)每个资源对象都是由唯一的友好名称所标识,称为 JNDI 名称。Application Server 附带的命名和目录服务将资源对象及其 JNDI 名称绑定在一起。要创建新资源,需要将新的名称-对象绑定输入到 JNDI 中。

J2EE 命名服务

JNDI 名称是便于用户使用的对象名称。这些名称通过 J2EE 服务器提供的命名和目录服务绑定到其对象。由于 J2EE 组件通过 JNDI API 访问此服务,因此对象通常使用其 JNDI 名称。例如,Pointbase 数据库的 JNDI 名称为 jdbc/Pointbase。当 Sun Java System Application Server 启动时,将从配置文件中读取信息,并自动将 JNDI 数据库名称添加到名称空间。

J2EE 应用程序客户机、企业 Bean 以及 Web 组件都需要具有权限,才能访问 JNDI 命名环境。

应用程序组件的命名环境是一种机制,使用它可以在部署或汇编期间自定义应用程序组件的商业逻辑。使用应用程序组件的环境即可对应用程序组件进行自定义,而无需访问或更改应用程序组件的源代码。

J2EE 容器实现 J2EE 应用程序组件的环境,并将该环境作为 JNDI 命名上下文提供给 J2EE 应用程序组件实例。J2EE 应用程序组件的环境的使用方式如下:

每个应用程序组件定义了其本身的环境项集合。一个应用程序组件在同一容器内的所有实例共享相同的环境项。不允许应用程序组件实例在运行时修改环境。

命名引用和绑定信息

资源引用是部署描述符中的一种元素,用于标识该资源的组件的编码名称。更具体地说,编码名称引用资源的连接工厂。在下节给出的示例中,资源引用名称是 jdbc/SavingsAccountDB。

资源的 JNDI 名称与资源引用的名称是不同的。使用此命名方法,您需要在进行部署之前先映射这两个名称,但此方法也用于将组件与资源分离开。由于具有此分离功能,因此如果组件在以后需要访问其他资源,则无需更改名称。这一灵活性使您可以更加容易地从先前存在的组件汇编 J2EE 应用程序。

表 10-1 列出了用于 Sun Java System Application Server 所使用的 J2EE 资源的 JNDI 查找及其关联的引用。

表 10-1 JNDI 查找及其关联的引用

JNDI 查找名称

关联的引用

java:comp/env

应用程序环境项

java:comp/env/jdbc

JDBC 数据源资源管理器连接工厂

java:comp/env/ejb

EJB 引用

java:comp/UserTransaction

UserTransaction 引用

java:comp/env/mail

JavaMail 会话连接工厂

java:comp/env/url

URL 连接工厂

java:comp/env/jms

JMS 连接工厂和目标

java:comp/ORB

应用程序组件之间共享的 ORB 实例


关于自定义资源

使用自定义资源

自定义资源访问本地 JNDI 系统信息库,外部资源访问外部 JNDI 系统信息库。这两种类型的资源都需要用户指定的工厂类元素、JNDI 名称属性等。在本节中,我们将讨论如何为 J2EE 资源配置 JNDI 连接工厂资源,以及如何访问这些资源。

在 Application Server 中,您可以创建、删除和列出资源以及 list-jndi-entities。

创建自定义资源

要创建自定义资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,为要修改的 JNDI 配置打开 Sun Java System Application Server 实例。
  2. 打开“JNDI”标签,并单击“自定义资源”。任何已经创建的自定义资源会在右侧窗格中列出。要创建新的自定义资源,单击“新建”。打开“JNDI”选项卡,并单击“新建”。将显示一个页面,用于添加新的自定义资源。
  3. 在“JNDI 名称”字段中,输入用于访问资源的名称。此名称将注册到 JNDI 命名服务中。
  4. 在“资源类型”字段中,输入全限定的类型定义,如上面示例中所示。“资源类型”定义遵循的格式为 xxx.xxx。
  5. 在“工厂类”字段中,为要创建的自定义资源输入工厂类名称。该字段中的值是用户指定的工厂类的名称。此类实现了 javax.naming.spi.ObjectFactory 接口。
  6. 在“说明”字段中,为要创建的资源输入说明。此说明是字符串值,最多可以包含 250 个字符。
  7. 在“其他属性”部分,添加属性名称和值。
  8. 标记“已启用自定义资源”复选框,以启用自定义资源。
  9. 单击“OK”保存自定义资源。

如果已在群集或独立实例上部署自定义资源,则可以使用“目标”选项卡管理目标。此选项卡将在创建自定义资源之后显示。通过输入目标名称并单击“确定”来设置目标。

等效的 asadmin 命令为:create-custom-resource。

编辑自定义资源

要编辑自定义资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,为要修改的 JNDI 配置打开 Sun Java System Application Server 实例。
  2. 打开“JNDI”并选择“自定义资源”。任何已经创建的自定义资源会在右侧窗格中列出。要编辑自定义资源,请在右侧窗格中单击文件名。
  3. 编辑“资源类型”字段、“工厂类”字段或“说明”字段。
  4. 选中“启用自定义资源”复选框,将启用自定义资源。
  5. 单击“保存”以保存对自定义资源的更改。

删除自定义资源

要删除自定义资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,打开“JNDI”选项卡。
  2. 单击“自定义资源”。任何已经创建的自定义资源会在右侧窗格中列出。要删除自定义资源,请单击要删除的资源名称旁边的框。
  3. 单击“删除”。此自定义资源即被删除。

等效的 asadmin 命令为:delete-custom-resource。

列出自定义资源

要列出自定义资源,请键入 asadmin ist-custom-resources 命令。例如,要列出主机 plum 上的自定义资源,请键入以下命令:

$asadmin list-custom-resource --host plum target6

要查看完整的上下文,请键入 asadmin help list-custom-resources。


关于外部 JNDI 系统信息库和资源

使用外部 JNDI 系统信息库和资源

通常,在 Sun Java System Application Server 上运行的应用程序需要访问存储在外部 JNDI 系统信息库中的资源。例如,一般的 Java 对象可能会以 Java 模式存储在 LDAP 服务器中。外部 JNDI 资源元素允许用户配置此类外部资源系统信息库。外部 JNDI 工厂必须实现 javax.naming.spi.InitialContextFactory 接口。

使用外部 JNDI 资源的示例:

<resources>
<!-- external-jndi-resource 元素指定如何访问存储在外部
-- JNDI 系统信息库中的 J2EE 资源。下面的示例
-- 说明如何访问 LDAP 中存储的 Java 对象。
-- factory-class 元素指定了访问资源工厂时所需的
-- JNDI InitialContext 工厂。属性元素
-- 与适用于外部 JNDI 上下文的环境相匹配,
-- jndi-lookup-name 引用 JNDI 名称,查找并获取
-- 指定的(在此示例中为 java)对象。
-->
<external-jndi-resource jndi-name="test/myBean"
jndi-lookup-name="cn=myBean"
res-type="test.myBean"
factory-class="com.sun.jndi.ldap.LdapCtxFactory">
<property name="PROVIDER-URL" value="ldap://ldapserver:389/o=myObjects" />
<property name="SECURITY_AUTHENTICATION" value="simple" />
<property name="SECURITY_PRINCIPAL", value="cn=joeSmith, o=Engineering" />
<property name="SECURITY_CREDENTIALS" value="changeit" />
</external-jndi-resource>
</resources>

创建外部资源

要创建外部资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,为要修改的 JNDI 配置打开 Sun Java System Application Server 实例。
  2. 打开“JNDI”并选择“外部资源”。任何已经创建的外部资源会在右侧窗格中列出。要创建新的外部资源,单击“New”。
  3. 在“JNDI Name”字段中,输入要访问资源的名称。此名称将登记到 JNDI 命名服务中。
  4. 在“资源类型”字段中,输入全限定的类型定义,如上面示例中所示。“资源类型”定义遵循的格式为 xxx.xxx。
  5. 在“JNDI Lookup”字段中,输入要在外部系统信息库中查找的 JNDI 值。例如,在创建一个与外部系统信息库连接的外部资源时,为了测试某个 Bean 类,“JNDI 查找”可能会如下所示:cn=testmybean。
  6. 在“Factory Class”字段中,输入 JNDI 工厂类外部系统信息库(例如,com.sun.jndi.ldap)。此类实现了 javax.naming.spi. ObjectFactory 接口。
  7. 在“说明”字段中,为要创建的资源输入说明。此说明是字符串值,最多可以包含 250 个字符。
  8. 在“其他属性”部分,添加属性名称和值。
  9. 标记“已启用外部资源”复选框,以启用外部资源。
  10. 单击“确定”以保存外部资源。

如果已在群集或独立实例上部署外部资源,则可以使用“目标”选项卡管理目标。此选项卡将在创建外部资源之后显示。通过输入目标名称并单击“确定”来设置目标。

等效的 asadmin 命令为:create-jndi-resource。

编辑外部资源

要编辑外部资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,为要修改的 JNDI 配置打开 Sun Java System Application Server 实例。
  2. 打开“JNDI”并选择“外部资源”。任何已经创建的外部资源会在右侧窗格中列出。要编辑外部资源,请在右侧窗格中单击文件名。
  3. 编辑“资源类型”字段、“JNDI 查找”字段、“工厂类”字段或“说明”字段。
  4. 选中“已启用外部资源”复选框,将启用外部资源。
  5. 单击“保存”以保存对外部资源的更改。

删除外部资源

要删除外部资源,请执行以下步骤:

  1. 在管理控制台的左侧窗格中,打开“JNDI”选项卡。
  2. 单击“外部资源”。任何已经创建的外部资源会在右侧窗格中列出。要删除外部资源,请单击要删除的资源名称旁边的框。
  3. 单击“删除”。此外部资源即被删除。

等效的 asadmin 命令为 delete-jndi-resource。

列出外部资源

要列出外部资源,请键入 asadmin list-jndi-resources 命令并指定 JNDI 名称。例如,键入以下命令可以列出外部资源:

$asadmin list-jndi-resources -- target plum jndi_name_test

要查看完整的上下文,请键入 asadmin help list-jndi-resources。



上一页      目录      下一页     


版权所有 2004 - 2005 Sun Microsystems, Inc. 保留所有权利。