`
阅读更多
JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池,下面谈一下我在Tomcat5.5中配置和使用JNDI的方法。本文的对象是对j2ee编程有所了解的读者.
一、先在自己应用程序WEB-INF目录下的web.xml添加以下语句
xml 代码
  1. <resource-ref>    
  2.  <descrtiption>引用资源说明descrtiption>    
  3.  <res-ref-name>引用资源的JNDI名res-ref-name>    
  4.  <res-type>引用资源的类名res-type>    
  5.  <res-auth>管理者(Container)res-auth>  
  6. <!---->    
  7. resource-ref>  
二、然后在tomcat目录/conf/server.xml文件里相应的<context></context>元素, 添加如下子元素
xml 代码
  1. <Resource name="引用资源的JNDI名"    
  2.                 auth="Container"    
  3.                type="javax.sql.DataSource"    
  4.                driverClassName="com.pointbase.jdbc.jdbcUniversalDriver(自己的jdbc驱动)"    
  5.                url="jdbc:pointbase:server://localhost/acme(数据库连接url)"    
  6.                username="root(用户名)"    
  7.                password="root(密码)"    
  8.                maxActive="20(连接池dbcp的相关配置)"    
  9.                maxIdle="10"    
  10.                maxWait="10000"/>   

注意,要把你的驱动拷到common/lib下,我用的是pointbase因此我拷的是pbclient44.jar到了common/lib下

三、举个例说明,以下是我的假设的项目ACMEWeb:
 在相应程序的web.xml里添加

xml 代码
  1. <web-app ....>     
  2.  .....    
  3.  <resource-ref>    
  4.  <res-ref-name>jdbc/AcmeDBres-ref-name>    
  5.  <res-type>javax.sql.DataSourceres-type>    
  6.  <res-auth>Containerres-auth>    
  7.  resource-ref>    
  8. web-app>  

然后再server.xml里修改:

xml 代码
  1. <Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work">    
  2.  <Resource name="jdbc/AcmeDB"  
  3.  auth="Container"  
  4.  type="javax.sql.DataSource"    
  5. driverClassName="com.pointbase.jdbc.jdbcUniversalDriver" url="jdbc:pointbase:server://localhost/acme"    
  6. username="root"  
  7.  password="root"    
  8. maxActive="20"  
  9.  maxIdle="10"    
  10. maxWait="10000"/>    
  11. Context>   
建议你把上面的内容编写成为一个xml文件,拷到conf/Catalina/<主机名>/文件夹下
分享到:
评论
2 楼 qingfeng825 2007-11-28  
在Tomcat 5.5\conf\Catalina\localhost\xxxxx.xml(xxxxx.xml为你自己的web的配置xml文件) 中添加resource
 <Resource name="MYSQL" 
 type="javax.sql.DataSource" 
 driverClassName="com.mysql.jdbc.Driver" 
 password="********" 
 maxIdle="2" 
 maxWait="5000" 
 username="root" 
 url="jdbc:mysql://localhost:3306/jnestore" 
 maxActive="10"/> 

以上是tomcat 5.5版本的配置,5.5版本只有这样陪才有效果,以前的版本可以按照paramter的方法添加;

Resource 一定要包含在<Context ......> </Context> 之间

在你的web的路近下,WEB-INF中找到web.xml,添加资源映射 
 <resource-ref> 
 <description>connection</description> 
 <res-ref-name>MYSQL</res-ref-name> 
 <res-type>javax.sql.DataSource</res-type> 
 <res-auth>Container</res-auth> 
 </resource-ref> 


把mysql的jdbc驱动.jar包放到tomcat的common/lib下去,也可以放到WEB-INF/lib下,

重新启动tomcat.

就可以用Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/MYSQL");

Connection con = ds.getConnection(); 来连接数据库连接池
1 楼 qingfeng825 2007-11-28  
如果是tomcat5以下,则修改conf/server.xml文件,tomcat5及以上则修改/conf/Catalina/localhost目录中的一个xml文件。在</Host>行之前插入如下的一段标签: 

(以oralce为例,假设你应用的上下文根是/test,jndi是jdbc/test) 
<Context path="/test" docBase="E:\test" >  

<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"/>  
<ResourceParams name="jdbc/test">  
<parameter>  
<name>username</name>  
<value>system</value>  
</parameter>  
<parameter>  
<name>password</name>  
<value>manager</value>  
</parameter>  
<parameter>  
<name>driverClassName</name>  
<value>oracle.jdbc.driver.OracleDriver</value>  
</parameter>  
<parameter>  
<name>url</name>  
<value>jdbc:oracle:thin:@192.168.0.27:1521:titan</value>  
</parameter>  
</ResourceParams>  
</Context> 

相关推荐

    jndi-1_2_1.zip_jndi_jndi-1.2.1.jar

    标题中的"jndi-1_2_1.zip_jndi_jndi-1.2.1.jar"表明这是一个关于JNDI的版本1.2.1的开源软件包,其中包含了一个名为"jndi-1.2.1.jar"的JAR文件。这个JAR文件包含了JNDI库的所有实现,使得开发者可以在他们的Java项目...

    jndi-tool JNDI服务利用工具

    "jndi-tool"是一个专门针对JNDI服务的利用工具,它可以被用来测试和利用JNDI相关的安全漏洞。此工具特别关注RMI和LDAP服务,这两种服务是JNDI常用的两种协议。RMI允许Java对象在不同的Java虚拟机之间进行远程调用,...

    Tomcat中JNDI原理

    ### Tomcat中JNDI原理详解 #### 一、引言 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API。它为开发者提供了访问各种命名和目录服务(如DNS、LDAP等)的统一接口。在Tomcat...

    jndi所依赖的jar包

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种不同的命名和目录服务提供了统一的接口。在Java应用程序中,JNDI允许开发者查找和绑定对象,这些对象可以是数据源、...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all

    《深入解析JNDI注入攻击与防御》 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问各种命名和目录服务的API,它提供了一种统一的方式来查找和访问不同类型的网络资源,如数据库、对象、服务器等。...

    jboss配置MySql的JNDI

    在IT领域,特别是Java应用服务器环境下,JBoss与MySQL数据库的集成是常见需求之一,而JNDI(Java Naming and Directory Interface)在此过程中扮演着关键角色。本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,...

    spring获取weblogic jndi数据源的两种方式

    ### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...

    jndi-JNDI-Injection-Exploit

    java asm jndi_JNDI-Injection-Exploit,用于log4j2漏洞验证 可执行程序为jar包,在命令行中运行以下命令: $ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address] 其中: -C ...

    JNDIDemo 以及相关文档

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。JNDI允许Java应用程序查找和操作各种类型的资源,如数据源、对象服务、邮件服务器等,而无需知道这些资源的具体实现细节...

    用JNDI绑定DataSource

    在Java应用中,JNDI(Java Naming and Directory Interface)是一种标准的接口,它允许应用程序查找和使用资源,如数据源(DataSource),而无需直接在代码中硬编码这些资源的位置或配置信息。JNDI的核心理念是将...

    JNDI示例整合SSH

    **标题:“JNDI示例整合SSH”** 在IT领域,`JNDI`(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录服务。它允许应用程序查找和操作不同类型的网络资源,如数据源、EJB等...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all.zip

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它允许程序查找和操作各种命名和目录服务,如 Lightweight Directory Access Protocol (LDAP)、Java Database Connectivity ...

    JNDI-Inject-Exploit

    # JNDI-Inject-Exploit ## 免责声明 本工具仅面向**合法授权的企业安全测试**,如您需测试本工具的可用性请自行搭建靶机环境,在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的...

    JNDI简单应用示例

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。它提供了一种标准的方法来查找和绑定数据,这些数据可以是对象引用、配置信息或者其他资源。JNDI通常与Java应用程序...

    JNDI学习文档.doc

    **Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。它提供了一个统一的接口来查找、访问和管理分布式系统中的资源,如数据库连接池、邮件服务器、对象服务等。JNDI的核心...

    com.sun.jndi.ldap.jar

    JNDI是一个接口,提供了一种标准的方式来访问命名和目录服务,而LDAP则是一种网络协议,常用于存储和查询用户账户、组信息、配置数据等结构化信息。 JNDI的主要作用是将Java应用程序与各种不同的命名和目录服务连接...

    jndi数据库查询例子

    **JNDI(Java Naming and Directory Interface)数据库查询例子** JNDI是Java平台中用于查找和绑定资源的接口,它允许程序通过名称查找数据源、对象服务等。在Java应用中,特别是企业级Java应用中,JNDI被广泛用于...

    JNDI配置详细介绍

    ### JNDI配置在Tomcat中的详细介绍 JNDI(Java Naming and Directory Interface)是Java平台的一个标准接口,用于访问命名和目录服务。在企业级应用中,JNDI常被用于查找和引用各种资源,如数据库连接、消息队列等...

Global site tag (gtag.js) - Google Analytics