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条目: ```xml type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username=...
在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...
Tomcat 配置 JNDI 数据源 Tomcat 是一个流行的 Java Web 服务器,JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口规范。Tomcat 中的 JNDI 数据源是指将数据库连接信息注册到 JNDI ...
Tomcat的JNDI服务也支持自定义命名空间,可以通过扩展`NamingResources`类并配置在`server.xml`中来实现。此外,Tomcat还支持JNDI属性文件,这使得在部署应用时可以方便地改变配置,而无需修改代码。 总结来说,...
通过JNDI配置数据源,使得数据库连接可以在多个应用之间共享,简化了应用的配置,同时提高了系统的可扩展性和可维护性。在实际开发中,还可以使用更高级的连接池实现,如C3P0、Apache DBCP2或HikariCP,它们提供了更...
在IT行业中,集成开发环境Eclipse、数据库管理系统MySQL和应用服务器Tomcat是常见的开发与部署组合。本篇文章将深入探讨如何在这样的环境下...记住,理解并熟练掌握JNDI配置对于Java Web开发者来说是至关重要的技能。
Tomcat配置JNDI数据源的N种方法
### Tomcat6中配置JNDI方法详解 #### 一、引言 在Java Web开发过程中,连接数据库是一项基础而重要的工作。常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory...
在Tomcat配置JNDI数据源的三种方式
Tomcat JNDI 配置是 Java Web 应用程序中的一种常见配置,用于将数据库连接信息以 JNDI(Java Naming and Directory Interface)的形式存储在 Tomcat 服务器中,以便于应用程序可以通过 JNDI 来获取数据库连接信息。...
在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...
6. **Tomcat版本兼容性**:不同版本的Tomcat对JNDI配置的支持可能有所不同,确保使用的JNDI配置符合Tomcat6的要求。 为了解决这些问题,可以按照以下步骤进行排查: - 检查配置文件中的语法和属性值。 - 确保所有...
你可以解压这个文件,导入到IDE中,运行并查看其配置和代码,以加深对JNDI配置的理解。 总结,配置Tomcat中的JNDI主要是为了方便和高效地管理数据库连接,通过在服务器端定义数据源,并在应用程序中通过JNDI查找和...
本实例是一个关于如何在Tomcat 6.0中配置和使用JNDI数据源的经典示例,包含了所需的JAR包、配置文件和SQL脚本。 首先,我们来看配置JNDI数据源的步骤。在Tomcat的`conf/server.xml`文件中,你需要添加一个新的`...
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称...本文档主要是tomcat配置jndi有全局配置和局部配置:
数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样 数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样数据源可以不用写java:comp了,直接写ID和WEBLOGIC一样
自定义jndi数据源factory类,用于解密jndi中的加密数据,解密方式为DES,具体可根据实际需求修改。
### TOMCAT JNDI配置详解 #### 一、概述 TOMCAT服务器是Apache软件基金会下的Jakarta项目中的一个开源Web应用容器。JNDI(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录...
tomcat jndi 数据库配置方法