GlobalNamingResources 组件
目录
简介
GlobalNamingResources 元素定义了 服务器 的全局 JNDI 资源。
这些资源在服务器的全局 JNDI 资源上下文中列出。此上下文与 JNDI 资源操作方法 中描述的每个 Web 应用程序的 JNDI 上下文不同。在此元素中定义的资源不会在每个 Web 应用程序上下文中显示,除非您使用 <ResourceLink> 元素明确地将它们链接起来。
属性
嵌套组件
特殊功能
环境条目
您可以通过在此元素中嵌套 <Environment>
条目来配置将对所有 Web 应用程序显示为环境条目资源的已命名值。例如,您可以创建如下环境条目
<GlobalNamingResources ...>
...
<Environment name="maxExemptions" value="10"
type="java.lang.Integer" override="false"/>
...
</GlobalNamingResources>
这等效于在 Web 应用程序部署描述符(/WEB-INF/web.xml
)中包含以下元素
<env-entry>
<env-entry-name>maxExemptions</env-entry-name>
<env-entry-value>10</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
但不需要修改部署描述符来自定义此值。
<Environment>
元素的有效属性如下
属性 | 说明 |
---|---|
说明 |
此环境条目的可选且可读的说明。 |
名称 |
要创建的环境条目的名称,相对于 |
覆盖 |
如果不希望 Web 应用程序部署描述符中找到的同环境条目名称的 |
类型 |
此环境条目在 Web 应用程序中预期的完全限定 Java 类名称。必须是 Web 应用程序部署描述符中 |
值 |
从 JNDI 上下文请求时将显示给应用程序的参数值。此值必须可转换为 |
资源定义
您可以通过在此元素中定义资源的特征,然后在 <Context>
元素中使用 <ResourceLink> 元素链接它们,来声明在 Web 应用程序部署描述符中 <resource-ref>
和 <resource-env-ref>
元素的 JNDI 查找要返回的资源的特征。您必须还使用 Resource 元素上的属性定义任何其他必需的参数,以配置要使用的对象工厂(如果 Tomcat 尚未知道)以及用于配置该对象工厂的属性。
例如,您可以创建这样的资源定义
<GlobalNamingResources ...>
...
<Resource name="jdbc/EmployeeDB" auth="Container"
type="javax.sql.DataSource"
description="Employees Database for HR Applications"/>
...
</GlobalNamingResources>
这等效于在 Web 应用程序部署描述符(/WEB-INF/web.xml
)中包含以下元素
<resource-ref>
<description>Employees Database for HR Applications</description>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
但不需要修改部署描述符来自定义此值。
<Resource>
元素的有效属性如下
属性 | 说明 |
---|---|
auth |
指定 Web 应用程序代码是否以编程方式登录到相应的资源管理器,还是容器将代表应用程序登录到资源管理器。此属性的值必须为 |
closeMethod |
当不再需要单例资源时,调用其上的零参数方法的名称。这旨在加快资源的清理速度,否则这些资源将作为垃圾回收的一部分进行清理。如果 对于 Apache Commons DBCP 2 和 Apache Tomcat JDBC 连接池,可以使用 |
说明 |
此资源的可选人类可读描述。 |
名称 |
要创建的资源的名称,相对于 |
范围 |
指定通过此资源管理器获得的连接是否可以共享。此属性的值必须为 |
单例 |
指定此资源定义是否用于单例资源,即资源只有一个实例。如果此属性为 |
类型 |
Web 应用程序在查找此资源时预期的完全限定 Java 类名称。 |
资源链接
使用 <ResourceLink>
元素将全局上下文中的资源链接到每个 Web 应用程序上下文中。以下是在 JNDI 资源操作指南 中的示例定义的基础上,向应用程序提供自定义工厂的示例:
<Context>
<ResourceLink
name="bean/MyBeanFactory"
global="bean/MyBeanFactory"
type="com.mycompany.MyBean"
/>
</Context>
事务
您可以声明要为 java:comp/UserTransaction
的 JNDI 查找返回的 UserTransaction 的特性。您必须定义一个对象工厂类来实例化此对象以及所需的资源参数作为 Transaction
元素的属性,以及用于配置该对象工厂的属性。
<Transaction>
元素的有效属性如下:
属性 | 说明 |
---|---|
工厂 |
JNDI 对象工厂的类名称。 |