jndi的基本原理不仔细讲了,在sun的教程中有。而且大陆也有翻译过来的文档:
http://yananay.iteye.com/blog/93687
文章是翻译tomcat文档中的jndi resource原文:http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html
Tomcat5 中JNDI Resources配置 ------ 通用JavaBean资源配置(Generic JavaBean Resources)
通常有四个步骤:
1.首先,当然是建一个JavaBean了。
package com.mycompany;
public class MyBean {
private String foo = "Default Foo";
public String getFoo() {
return (this.foo);
}
public void setFoo(String foo) {
this.foo = foo;
}
private int bar = 0;
public int getBar() {
return (this.bar);
}
public void setBar(int bar) {
this.bar = bar;
}
}
2.在web.xml文件中添加如下信息:
<resource-env-ref>
<description>
Object factory for MyBean instances.
</description>
<resource-env-ref-name>
bean/MyBeanFactory
</resource-env-ref-name>
<resource-env-ref-type>
com.mycompany.MyBean
</resource-env-ref-type>
</resource-env-ref>
3.配置Tomcat的资源工厂:
<Context ...>
...
<Resource name="bean/MyBeanFactory" auth="Container"
type="com.mycompany.MyBean"
factory="org.apache.naming.factory.BeanFactory"
bar="23"/>
...
</Context>
这段代码可以添加到server.xml中的<host>标签之间,不过,我觉得还是加到每个Tomcat应用所对应的 .xml文件中比较好,易于理解,也不容易出错。
4.上述步骤完成之后,就可以在代码中使用配置好的资源了。使用方法示例如下:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
MyBean bean = (MyBean) envCtx.lookup("bean/MyBeanFactory");
writer.println("foo = " + bean.getFoo() + ", bar = " +
bean.getBar());
有些需要特别注意的地方如下:
1.)web.xml中添加的元素的顺序不能改变。
2.)在server.xml中添加<context>元素,和在某个web应用对应的 .xml文件中添加<context>元素都可以访问配置好的资源。Tomcat会先检查server.xml,如果两个有相同的配置的话,Tomcat会以server.xml中的为准,并且删除该应用对应的.xml文件,然后产生一个新的。这个新的只包含一个<context>根元素,不包含<resource>元素及其中的其他元素。
3.)资源名称(例子中的是bean/MyBeanFactory,即<Resource>元素中的name属性的值)必须和web.xml中指定的<resource-env-ref-name>的值相同。另外,在资源工厂的参数配置中可以指定JavaBean的属性的初始值。示例代码中就把Bar属性的值设为23了。(JavaBean中Bar的默认值是0).不指定的话,就使用程序中设置的初始值.
原文:
Note that the resource name (here, bean/MyBeanFactory must match the value specified in the web application deployment descriptor. We are also initializing the value of the bar property, which will cause setBar(23) to be called before the new bean is returned. Because we are not initializing the foo property (although we could have), the bean will contain whatever default value is set up by its constructor.
分享到:
相关推荐
tomcat配置jndi几个方式
Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程
Tomcat配置JNDI数据源的N种方法
eclipse+mysql+tomcat配置JNDI实现例子 博文链接:https://uuplace.iteye.com/blog/88878
在Tomcat配置JNDI数据源的三种方式
帆软报表FineReport中数据连接中的Tomcat配置JNDI连接,要通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,本文进行详细演示。
tomcat上配置的JNDI数据源的几种方式
tomcat-jndi
TOMCAT JNDI配置
自己总结的三种使用方式,对比来看选择最适合你的方式
连接数据库有JDBC和JNDI等多种方式,该文件详细的描述了如何在tomcat6下配置JNDI的方法,本人测试多次很有效,绝对正确。
Tomcat JNDI配置说明
Tomcat6.0 JNDI数据源经典实例,里面JAR包,配置文件,数据源都配置好了,sql语句已经打包好了,直接可以建表的。
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称...本文档主要是tomcat配置jndi有全局配置和局部配置:
NULL 博文链接:https://shijian4810.iteye.com/blog/1165175
数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样 数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样
tomcat配置jndi、数据库连接jndi、jndi实例、非常简单,可以快速学习入门。有连接数据库的例子,和具体的配置。
hibernate 3.1+tomcat 5.5.x(配置jndi)hibernate 3.1+tomcat 5.5.x(配置jndi)hibernate 3.1+tomcat 5.5.x(配置jndi)hibernate 3.1+tomcat 5.5.x(配置jndi)hibernate 3.1+tomcat 5.5.x(配置jndi)hibernate 3.1+...
tomcat jndi 数据库配置方法