JNDI Resources HOW-TO

  Tomcat 5为每个在他下面运行的应用程序提供了一个JNDI InitialContext 的实例。在某种意义上,他和那些j2ee应用服务器提供的(实例)是兼容的。J2EE规范在/WEB-INF/web.xml 中提供了了引用资源的一套标准的元素;被这些元素所引用的资源必须在application-server-specific配置中定义。

在Tomcat 5里面,在每个应用程序里面的InitialContext 入口在<server>的<Context> 或者<DefaultContext>元素中被定一。<Context>元素既可以在 $CATALINA_HOME/conf/server.xml 中指定,也可以在 per-web-application 的上下文xml中指定,后一种更合适。 <DefaultContext> 则必须在$CATALINA_HOME/conf/server.xml指定。

Tomcat 5为整个服务器维护了一个单独的全局资源命名空间。这些在$CATALINA_HOME/conf/server.xml的<GlobalNameingResources> 元素中配置。你可以通过<ResourceLink>标签把这些资源暴露给web应用程序.

以上的这些资源可以被你的web应用程序的web应用程序描述符(WEB-INF/web.xml)所引用.具体如下:

<env-entry>-环境入口.一个配置应用如何操作的单值参数.

<resource-ref> - 资源引用.代表了资源的一个对象工厂,比如JDBC DataSource,JavaMail Session,或着客户自定义的对象工厂.

<resource-env-ref> - 资源环境引用.一个在Servlet 2.4中增加的新的resource-ref变量,他可以简单的配置资源而不许要验证信息.

 InitialContext 在一个web应用被初始化部署时配置,并提供给web应用组件只读访问.所有配置的入口和资源都放在java:comp/env 这个JNDI 命名空间下,所以,一个有代表性的访问方式(访问jdbc DataSource)如下所示:

// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");

// Allocate and use a connection from the pool
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
配置JNDI资源
每一个可用的JNDI资源都在context或者defaultcontext中配置,主要包含以下一些元素:
<Environment>为分级的环境入口配置名称和值,这些将通过 JNDI InitialContext 暴露给web应用程序,相当于在
web.xml中的<env-entry>
<Resource> 为应用配置可用的资源名称和数据类型,相当于web.xml中的<resource-ref>
<ResourceParams>配置需要用到的资源工厂的一个实现的类名,以及配置资源工厂的javabean的属性
<ResourceLink>添加一个到全局JNDI 上下文的连接.利用资源连接可以使web应用程序访问Server> 的子节点<GlobalNamingResources><元素
任何数量的元素都可以在 <Context>(与单个web应用程序关联)下面或着<DefaultContext>(用来为自动加载的应用程序配置特征)下面嵌套.
另外,在web.xml中<env-entry>配置的名称和值也可以配置成初始化上下文.
overriding corresponding values from conf/server.xml only if allowed by the corresponding <Environment> element (by setting the override attribute to "true").
全局资源能够定义成server-wide JNDI 上下文.方法是在Server>的字节点<GlobalNamingResources><中定义,并在每一个web应用程序上下文中用<ResourceLink>
来引用.
tmd,俺配了半天的<GlobalNamingResources>,还是没有搞成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值