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. 保留所有权利。