转载http://extrimlycold20070206121610.iteye.com/blog/518811
tomcat5.5的JNDI设置,主要注意的两点:
1) 驱动程序在server中所放的位置。
2) 配置
配置文件中添加JNDI有好几种方式,不过以下这种方式比较通用一点.
${TOMCAT_HOME}\conf\context.xml中如下设置:
Java代码
1.<Context>
2.
3. <!-- Default set of monitored resources -->
4. <WatchedResource>WEB-INF/web.xml</WatchedResource>
5.
6. <!-- Uncomment this to disable session persistence across Tomcat restarts -->
7. <!--
8. <Manager pathname="" />
9. -->
10.
11.<Resource name="jdbc/test"
12. type="javax.sql.DataSource"
13. password=""
14. driverClassName="com.mysql.jdbc.Driver"
15. maxIdle="2"
16. maxWait="50"
17. username="root"
18. url="jdbc:mysql://localhost:3306/mynews"
19. maxActive="100"/>
20.</Context>
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jdbc/test"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/mynews"
maxActive="100"/>
</Context>
测试程序调用时如下:
Java代码
1.<%@page import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*"%>
2.<%@page contentType="text/html;charset=utf-8"%>
3.<%
4. Context ctx = new InitialContext();
5. String jndiLookUp = "java:comp/env/jdbc/test";
6. DataSource ds =(DataSource) ctx.lookup(jndiLookUp);
7. Connection con = ds.getConnection();
8. ResultSet rs =null;
9. Statement stmt =null;
10. try{
11.
12. stmt =con.createStatement();
13. rs = stmt.executeQuery("select * from XXX");
14. while(rs.next())
15. {
16. System.out.println(rs.getString(1));
17. }
18. }catch(Exception e)
19. {
20. e.printStackTrace();
21.
22. }finally{
23. if(rs!=null)
24. rs.close();
25. if(stmt!=null)
26. stmt.close();
27. if(con!=null)
28. con.close();
29.
30. }
31.
32.%>
<%@page import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*"%>
<%@page contentType="text/html;charset=utf-8"%>
<%
Context ctx = new InitialContext();
String jndiLookUp = "java:comp/env/jdbc/test";
DataSource ds =(DataSource) ctx.lookup(jndiLookUp);
Connection con = ds.getConnection();
ResultSet rs =null;
Statement stmt =null;
try{
stmt =con.createStatement();
rs = stmt.executeQuery("select * from XXX");
while(rs.next())
{
System.out.println(rs.getString(1));
}
}catch(Exception e)
{
e.printStackTrace();
}finally{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(con!=null)
con.close();
}
%>
注意jndi的调用中用的是"java:comp/env/jdbc/test".
在程序的web.xml中有这样的定义:
Java代码
1.<resource-ref>
2. <res-ref-name>jdbc/test</res-ref-name>
3. <res-type>javax.sql.DataSource</res-type>
4. <res-auth>Container</res-auth>
5. <res-sharing-scope>Shareable</res-sharing-scope>
6. </resource-ref>
<resource-ref>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
java:comp/env是组件的JNDI上下文的名字.
(实际上这个上下文也作为一种资源来处理了,资源查找的过程可以是这样:
jndictxt = ctxt.lookup("java:comp/env")然后用这个jndictxt来查找资源,
ref = jndictxt.lookup("jdbc/test")。)
jdbc/test是资源引用的JNDI名(The jdbc/test string is the JNDI name for the resource reference,这句话可能意味着资源引用实际上也跟资源一样处理成一种JNDI绑定对象了,但是实际上应该不是这样,因为在部署描述符中它是引用名元素。因为译者也不是高手,所以这里的具体实现细节有待读者自己研究了:)所以JDBC的DataSource对象的JNDI名就存储在java:comp/env/jdbc的上下文子对象中。(组件运行环境的上下文层次需要进一步了解)
Java代码
1.import javax.naming.Context;
2.import javax.naming.InitialContext;
3.import javax.naming.NamingException;
4.import javax.sql.DataSource;
5.
6. public static DataSource getDataSource(String dataSourceName){
7. Context initCtx;
8. try {
9. initCtx = new InitialContext();
10. Context envCtx = (Context) initCtx.lookup("java:comp/env");
11. return (DataSource)envCtx.lookup(dataSourceName);
12. } catch (NamingException e) {
13. e.printStackTrace();
14. }
15. return null;
16.
17.}
分享到:
相关推荐
Tomcat 5.5中的DBCP配置涉及到添加依赖库、创建数据源配置文件、配置Tomcat服务器和在应用程序中使用JNDI查找数据源。通过这些步骤,可以实现高效且可扩展的数据库连接管理,为Web应用提供稳定的数据库访问支持。在...
### hibernate 3.1+tomcat 5.5.x(配置jndi) #### 一、引言 随着Tomcat从5.0版本升级到5.5.x版本,其配置发生了诸多变化,特别是对Tomcat JNDI的配置方式产生了显著的影响。这对希望在Hibernate安装中利用Tomcat ...
**在Tomcat 5.5下配置EJB** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是一种用于构建可扩展、安全且可靠的服务器端应用程序的核心技术。EJB提供了组件模型,允许开发者将业务逻辑封装到可重用的组件...
在Tomcat 5.5之前,JNDI配置通常在`server.xml`中进行,但现在可以改在应用程序级别的`Context.xml`文件中完成,这样使得配置更加简洁和独立。 1. **配置Context.xml文件** - `Context.xml`文件现在应放置在每个...
### Tomcat5.5连接池配置详解 #### 一、引言 在现代软件开发过程中,数据库连接管理是一项至关重要的任务。为了提高系统的性能和稳定性,合理地管理和复用数据库连接资源是必不可少的。Apache Tomcat 作为一种广泛...
《Tomcat5.5中文技术手册》是一份详尽的指南,专为使用Apache Tomcat 5.5版本的开发者和管理员提供。这份手册以中文呈现,方便了中文读者理解和应用Tomcat的相关知识。HTML版的形式使得查阅和学习更加便捷,无需安装...
Tomcat5.5+myeclipse6.0+sql server2000,将包解压后,将JDBC驱动程序jar包放到Tomcat/commons/lib目录下,然后导入项目,发布项目,起动tomcat,动行jsp页面
在Tomcat 5.5.x版本中,`server.xml`是服务器的主要配置文件,它包含了关于服务器设置、连接器、容器以及其他关键组件的配置信息。本篇文章将详细解释如何在`server.xml`中配置域名转向和连接池。 ### 域名转向...
通过这份"Tomcat5.5连接池配置案例",新手可以系统学习并掌握如何在Tomcat环境中配置和使用连接池,提升应用的数据库访问效率。同时,案例笔记将帮助理解每个步骤背后的原理和最佳实践,从而更好地应对实际开发中的...
此外,Tomcat 5.5还支持Java Naming and Directory Interface (JNDI),可以用来查找和绑定资源,以及JavaMail API,用于发送电子邮件。 在开发过程中,Eclipse提供了强大的调试工具。你可以设置断点,单步执行代码...
### Tomcat 5.5 JNDI 配置详解 #### 一、概述 在Java Web应用开发过程中,经常需要连接数据库以实现数据交互。为了更好地管理这些资源,Tomcat等应用服务器提供了JNDI(Java Naming and Directory Interface)服务...
在本教程中,我们将深入探讨如何安装和配置Tomcat5.5,以及它所包含的数据库连接池管理模块。 首先,了解Tomcat5.5的基础知识是至关重要的。Tomcat5.5基于Servlet 2.4和JSP 2.0规范,提供了一个轻量级的运行环境,...
通过以上配置,Tomcat 5.5已经成功设置了数据源,应用可以通过JNDI查找并使用这个数据源来建立与数据库的连接。这种方式不仅方便了数据库连接的管理,还优化了系统性能,因为连接可以在使用后被放回连接池,而不是...
使用Tomcat 5.5时,你需要了解如何配置和管理服务器,包括设置端口号、添加新的虚拟主机、配置数据源、以及调整性能参数等。此外,对于安全性,你还需要关注如何设置用户角色、权限控制和SSL支持。 然而,值得注意...
通过JNDI配置数据源,使得数据库连接可以在多个应用之间共享,简化了应用的配置,同时提高了系统的可扩展性和可维护性。在实际开发中,还可以使用更高级的连接池实现,如C3P0、Apache DBCP2或HikariCP,它们提供了更...
【Tomcat5.5数据源配置详解】 在Java Web开发中,Tomcat作为轻量级应用服务器,常常被用于部署Web应用程序。为了连接数据库,我们需要配置数据源(DataSource)。本篇将详细介绍如何在Tomcat 5.5版本中配置数据源,...
Tomcat 5.5可以与其他Java EE组件,如JNDI(Java Naming and Directory Interface)和JMS(Java Message Service)一起工作,尽管它本身并不完全符合Java EE规范。然而,通过与EJB容器(如JBoss或Glassfish)的集成...
### Tomcat 5.5 配置 MySQL 数据库连接池详解 #### 一、引言 随着Web应用程序的发展,数据库连接池技术的应用越来越广泛。它能够显著提高数据库访问效率,减少资源消耗。Tomcat作为一款广泛应用的Java Web容器,...
本文将深入探讨如何在Tomcat 5.5版本中配置数据库连接池,以便高效地管理数据库连接,提高系统的响应速度和资源利用率。 首先,我们需要了解什么是数据库连接池。数据库连接池是在应用服务器启动时创建的一组预定义...