`
MauerSu
  • 浏览: 509184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

tomcat6中配置JNDI

 
阅读更多

源:http://wenku.baidu.com/view/f0553cd3195f312b3169a54a.html

评:

tomcat6配置JNDI
在Java Web开发中都要与数据库打交道,为了不频繁地打开和关闭数据库,以减少数据库操作负荷,可使数据库在开发过程中保持打开状态,在这里我们采用配置数据源的方式(JNDI),而不是传统地JDBC方式。下面就针对常规型的MySQL5.0.15和Tomcat6.0的数据源的基本配置进行简单的介绍:
  首先声明,如果数据源没有配置好的话,在开发过程中会抛出诸如下列异常等:
  1、org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
  2、Caused by: java.sql.SQLException: No suitable driver
  3、Name jdbc is not bound in this context
现在开始讲下如何配置好数据源同时也是解决上述异常的办法:
方案一:
  步骤一、在Tomcat6.0解压目录conf下找到context.xml,在其中的<Context></Context> 中加入如下代码(要根据自己的情况稍加修改):
<Resource name="jdbc/TestDB"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
  步骤二、在工程应用中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤三、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
    通过这三步,一个基本的数据源就配置成功了!
----------------------------------------------------------------------------------
方案二
步骤一、在Tomcat6.0解压目录conf下找到server.xml,在其中的
<GlobalNamingResources></GlobalNamingResources>中加入如下代码(要根据自己的情况稍加修改):
<Resource name="jdbc/TestDB"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
步骤二、在Tomcat6.0解压目录conf下找到context.xml,在其中的<Context></Context>中加入并修改成如下代码(要根据自己的情况稍加修改):
<Context path="/znt" debug="1" reloadable="true"  docBase="E:\EclipseWorkPlace\MyZNT\WebRoot">
<ResourceLink global="jdbc/myznt" name="jdbc/myznt" type="javax.sql.Datasource"/>
................<!--此间可能有系统其它自配的内容,可不管-->
</Context>
步骤三、在工程中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤四、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
   通过以上四步就好了!
-----------------------------------------------------------
方案三(具有不稳定性,慎用)
步骤一、在Tomcat6.0解压目录conf下找到server.xml,在其中的<Host></Host>中加入如下代码(要根据自己的情况稍加修改):
<Context path="/znt" docBase="E:\EclipseWorkPlace\MyZNT\WebRoot"
  debug="5" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger"
     prefix="localhost_MysqlTest_log." suffix=".txt"
     timestamp="true"/>
<Resource name="jdbc/myznt"  auth="Container" type="javax.sql.DataSource" password="localhost" username="root"  driverClassName="org.gjt.mm.mysql.Driver"  url="jdbc:mysql://localhost/myznt"  maxActive="100"  maxIdle="30"  maxWait="5000"/>
</Context>
步骤二、在工程中/WEB-INF/下的web.xml中加入如下代码(要根据自己的情况稍加修改):
<resource-ref>
    <description>MySQL DataSource</description>
     <res-ref-name>jdbc/myznt</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
步骤三、把MySQL-Connector-java-3.0.12-bin.jar(可换更高版本)加到Tomcat安装目录中的lib目录下和工程中的lib目录下。
    通过以上三步,大部分时候还是起作用的,但有时会出现异常,因此不建议使用。
    以上几种方案在实践中经受了测试,方案一和二比较稳定,方案三最好别用,同时只是进行了大致地归纳,其中的哪些地方没有必要或哪里欠妥还没有去测试,望读者进行批评指正。
--------------------------------------------------------
Tomcat链接数据源的基本代码
Context initContext;
try {
    initContext = new InitialContext();
    Context envContext  = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet set = stmt.executeQuery("SELECT id,name,age FROM user_lzy");
    while(set.next()){
System.out.println(set.getString("name"));
    }
    //etc.
} catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

分享到:
评论

相关推荐

    tomcat6中配置JNDI方法

    ### Tomcat6中配置JNDI方法详解 #### 一、引言 在Java Web开发过程中,连接数据库是一项基础而重要的工作。常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory...

    Tomcat6配置JNDI出错

    当在Tomcat6中配置JNDI时,错误可能由多种原因引起: 1. **配置文件错误**:最常见的错误是`context.xml`或`server.xml`配置文件中的错误。在`context.xml`中,我们通常会定义数据源,例如: ```xml type=...

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    JNDI数据源配置(tomcat)

    在 Tomcat 中,配置 JNDI 数据源有两种方式:单个应用独享数据源和全局 JNDI 数据源。 1. 单个应用独享数据源 在 Tomcat 的 server.xml 文件中,添加一个私有数据源的配置。例如,使用 c3p0 数据源的配置: ```...

    tomcat6.0中配置JNDI的DBCP连接

    在Java应用服务器中,如Tomcat 6.0,配置JNDI(Java Naming and Directory Interface)的DBCP(Database Connection Pool)连接池是管理数据库连接的重要步骤。JNDI是一个标准接口,允许应用程序查找和访问命名服务...

    tomcat配置jndi数据源

    Tomcat 配置 JNDI 数据源 Tomcat 是一个流行的 Java Web 服务器,JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口规范。Tomcat 中的 JNDI 数据源是指将数据库连接信息注册到 JNDI ...

    tomcat配置JNDI数据源

    【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个...

    tomcat中配置jndi 数据源

    tomcat中配置jndi 数据源!!!

    intellij idea使用tomcat开发时自动部署jndi数据源

    在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...

    eclipse+mysql+tomcat配置JNDI

    2. **在Tomcat中配置JNDI数据源**: 在Tomcat的`conf/server.xml`文件中,找到`&lt;GlobalNamingResources&gt;`标签,然后添加一个新的`&lt;Resource&gt;`标签来定义数据源。例如: ```xml type="javax.sql.DataSource" ...

    在Tomcat配置JNDI数据源的三种方式

    在Tomcat配置JNDI数据源的三种方式

    Tomcat-5配置JNDI数据源

    【标题】:“Tomcat-5配置JNDI数据源” 【描述】:“配置Tomcat 5.5及以上版本中的JNDI数据源” 【标签】:“JNDI数据源”、“数据源”、“JNDI” 【正文】: 在Java应用服务器如Tomcat中,JNDI(Java Naming ...

    Tomcat中JNDI原理

    在部署该应用时,管理员可以在Tomcat的配置文件中设置相应的JNDI条目: ```xml type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username=...

    tomcat6+jndi+c3p0配置数据库连接池

    本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...

    Tomcat配置JNDI数据源的N种方法

    Tomcat配置JNDI数据源的N种方法

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    标题中的“Tomcat6.0配置JNDI数据源完整例子”是指在Apache Tomcat 6.0服务器中设置Java Naming and Directory Interface (JNDI)数据源的过程。JNDI是一个API,它允许应用程序查找和使用命名服务,如数据库连接池。...

    Tomcat6+spring+jndi配置数据源说明.docx

    Tomcat6+Spring+JNDI配置数据源说明 本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大...

    Tomcat中配置jndi数据源连接池(自己写的).doc

    【Tomcat中配置jndi数据源连接池详解】 在Java Web应用中,Tomcat作为常用的Servlet容器,常被用于部署和运行Web应用程序。为了管理数据库连接,我们常常需要配置数据源连接池,以实现高效的数据库连接管理和复用。...

    在tomcat6.0.18下手动配置jndi

    在本教程中,我们将深入探讨如何在Tomcat 6.0.18这个特定版本下手动配置JNDI,以便为应用程序提供数据库连接或其他服务。 首先,我们需要理解JNDI的工作原理。JNDI提供了一个全局的命名空间,使得应用程序可以使用...

    tomcat-jndi

    Tomcat的JNDI服务也支持自定义命名空间,可以通过扩展`NamingResources`类并配置在`server.xml`中来实现。此外,Tomcat还支持JNDI属性文件,这使得在部署应用时可以方便地改变配置,而无需修改代码。 总结来说,...

Global site tag (gtag.js) - Google Analytics