最近在tomcat 下配了下jndi 觉得这篇文章比较好,如下
准备工作:
安装tomcat5.5(注意这点)
安装mysql
拷贝mysql驱动到tomcat_home/common/lib下
新建一个web工程
在工程中加入index.jsp
<%@pageimport="java.util.*,javax.naming.*,java.sql.*,javax.sql.*"%>
<%@pagecontentType="text/html;charset=BIG5"%>
<%
Contextctx=newInitialContext();
StringstrLookup="java:comp/env/jdbc/test";
DataSourceds=(DataSource)ctx.lookup(strLookup);
Connectioncon=ds.getConnection();
if(con!=null)
{
out.print("success");
}else
{
out.print("failure");.
}
%>
web.xml中加入
<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>
配置tomcat
这一步的目的就是告诉tomcat如何连接数据库
可以分为两种大的类型,每种类型又有很多种配置方式
配置类型一:
(直接配置的类型,这种方式最简单)
方法一:
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml
内容如下:
<Context>
<Resource
name="jdbc/test"
type="javax.sql.DataSource"
password="bb"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
</Context>
方法二:
只需在tomcat_home\webapps\myapps\META-INF\context.xml中增加:
<context>
<Resource
name="jdbc/test"
type="javax.sql.DataSource"
password="bb"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
</context>
说明:这种配置需要告诉tomcat resource的内容,resource应用于什么地方
第一种方法通过文件名知道了app的name
第二种方式本身就在app内部,所以name肯定知道
两种方式都要放在context中
配置类型二:
(配置全局resource,然后通过resourcelink来映射)
步骤一:配置全局resource(这一步对于所有的配置都是一样的)
打开tomcat_home/conf/server.xml加入
<Resource
name="jdbc/test"
type="javax.sql.DataSource"
password="bb"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
步骤二:映射
(映射可以配置在多个地方,也就有多个配置方法:)
方法一:(对比类型一的配置理解)
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml加入如下内容
<Context>
<ResourceLinkglobal="jdbc/test"name="jdbc/test"type="javax.sql.DataSource"/>
</Context>
方法二:(对比类型一的配置理解)
在tomcat_home\webapps\myapps\META-INF\context.xml的Context中增加:
<context>
<ResourceLinkglobal="jdbc/test"name="jdbc/test"type="javax.sql.DataSource"/>
</context>
方法三:(上边两种方法都是把全局的resource 映射给jndi这个web应用,第三种方法就是把这个
全局的resource直接公开给所有的应用)
在tomcat_home/conf/context.xml的之间加入
运行测试:
打开ie,输入http://localhost:8080/jndi/index.jsp
看到success
常见错误:
1,Name jdbc is not bound in this Context
2,Cannot create JDBC driver of class '' for connect URL 'null' conf localhost
原因:
大多数是因为配置了全局的resource,但没有link造成的。
解决:
加入link就行了,link的方式见类型二的三种方法。
分析:
看到上边这么多方法,是否感觉眼花缭乱,其实不要死记配置,按照原理分析一下就好了。
你需要的是告诉tomcat哪个应用如何连接数据库。
类型一的方式对应一个应用单独使用这个配置的情况
就是直接告诉tomcat"应用名" "连接数据库需要的参数"
类型二的方式对应多个应用共享一个配置的情况
这样先配置server.xml告诉tomcat全局范围的"连接数据库需要的参数"
然后映射,映射的时候
1,如果不知道"app name(应用名)"就只需要通过文件名来传递这个信息
2,如果"app name"都知道就只需要加入映射的内容
3,如果要配置成全局公用的,就不需要"app name",本身放在tomcat的context.xml中
最后再次提醒一下:所有的配置必须放在之间
分享到:
相关推荐
本篇将详细介绍如何在Tomcat下配置JNDI,以便于多个组件共享数据库连接池,例如在Hibernate框架中使用。 首先,我们需要理解Tomcat中的JNDI配置。JNDI允许我们将资源(如数据源)注册到一个全局命名空间中,这样...
在本文中,我们将深入探讨“Tomcat6配置JNDI出错”这一主题,这是一个常见的问题,很多开发者在搭建和配置Java企业级应用时可能会遇到。 JNDI,全称Java Naming and Directory Interface,是Java平台的一个标准接口...
在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...
在 Tomcat 的 server.xml 文件中,可以在 Server > Service > Engine > Host 节点下增加 Context 节点,并在该节点下配置私有数据源。这是最简单的配置方式,每个应用程序都可以有自己的数据源。 例如,在 server....
在Tomcat配置JNDI数据源的三种方式
本篇文章将深入探讨如何在这样的环境下配置JNDI(Java Naming and Directory Interface),以便于应用程序能方便地查找和使用数据库资源。JNDI是Java平台中的一种标准服务,它提供了一个统一的接口来查找和管理各种...
在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...
tomcat中配置jndi 数据源!!!
【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个...
下面详细介绍在Tomcat6环境下配置JNDI的具体步骤: ##### 3.1 配置`context.xml` - 打开Tomcat安装目录下的`conf/context.xml`文件,在`<Context>`标签内添加数据源配置信息。 ```xml auth="Container" type...
Tomcat配置JNDI数据源的N种方法
标题中的“Tomcat6.0配置JNDI数据源完整例子”是指在Apache Tomcat 6.0服务器中设置Java Naming and Directory Interface (JNDI)数据源的过程。JNDI是一个API,它允许应用程序查找和使用命名服务,如数据库连接池。...
在本教程中,我们将深入探讨如何在Tomcat 6.0.18这个特定版本下手动配置JNDI,以便为应用程序提供数据库连接或其他服务。 首先,我们需要理解JNDI的工作原理。JNDI提供了一个全局的命名空间,使得应用程序可以使用...
本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...
在部署该应用时,管理员可以在Tomcat的配置文件中设置相应的JNDI条目: ```xml type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username=...
本文将详细介绍如何在Apache Tomcat 5.5中配置JNDI。 #### 二、准备工作 1. **Tomcat安装**: 确保已经正确安装了Apache Tomcat 5.5.26版本。 2. **数据库驱动**: 准备好相应的数据库驱动JAR文件,例如本例中的...
**Tomcat配置JNDI详解** Java Naming and Directory Interface (JNDI) 是Java平台提供的一种标准服务,用于管理和查找应用程序中的资源,如数据源、邮件服务器等。在Tomcat应用服务器中,JNDI被用来注册和查找数据...
Tomcat的JNDI服务也支持自定义命名空间,可以通过扩展`NamingResources`类并配置在`server.xml`中来实现。此外,Tomcat还支持JNDI属性文件,这使得在部署应用时可以方便地改变配置,而无需修改代码。 总结来说,...