2008-04-27
配置tomcat5.5 jndi 各种配置方式 分析总结(mysql)
准备工作:
安装tomcat5.5(注意这点)
安装mysql
拷贝mysql驱动到tomcat_home/common/lib下
新建一个web工程
在工程中加入index.jsp
web.xml中加入
配置tomcat
这一步的目的就是告诉tomcat如何连接数据库
可以分为两种大的类型,每种类型又有很多种配置方式
配置类型一;
(直接配置的类型,这种方式最简单)
方法一:
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是<yourAppName>.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml
内容如下:
方法二:
只需在tomcat_home\webapps\myapps\META-INF\context.xml中增加:
说明:这种配置需要告诉tomcat resource的内容,resource应用于什么地方
第一种方法通过文件名知道了app的name
第二种方式本身就在app内部,所以name肯定知道
两种方式都要放在context中
配置类型二:
(配置全局resource,然后通过resourcelink来映射)
步骤一:配置全局resource(这一步对于所有的配置都是一样的)
打开tomcat_home/conf/server.xml加入
步骤二:映射
(映射可以配置在多个地方,也就有多个配置方法:)
方法一:(对比类型一的配置理解)
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是<yourAppName>.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml加入如下内容
方法二:(对比类型一的配置理解)
在tomcat_home\webapps\myapps\META-INF\context.xml的Context中增加:
方法三:(上边两种方法都是把全局的resource 映射给jndi这个web应用,第三种方法就是把这个
全局的resource直接公开给所有的应用)
在tomcat_home/conf/context.xml的<Context></context>之间加入
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>
运行测试:
打开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中
最后再次提醒一下:所有的配置必须放在<context></context>之间
安装tomcat5.5(注意这点)
安装mysql
拷贝mysql驱动到tomcat_home/common/lib下
新建一个web工程
在工程中加入index.jsp
<%@page import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*" %>
<%@page contentType="text/html;charset=BIG5"%>
<%
Context ctx = new InitialContext();
String strLookup = "java:comp/env/jdbc/test";
DataSource ds =(DataSource) ctx.lookup(strLookup);
Connection con = 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文件,文件名是<yourAppName>.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文件,文件名是<yourAppName>.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml加入如下内容
<Context> <ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/> </Context>
方法二:(对比类型一的配置理解)
在tomcat_home\webapps\myapps\META-INF\context.xml的Context中增加:
<context> <ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/> </context>
方法三:(上边两种方法都是把全局的resource 映射给jndi这个web应用,第三种方法就是把这个
全局的resource直接公开给所有的应用)
在tomcat_home/conf/context.xml的<Context></context>之间加入
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>
运行测试:
打开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中
最后再次提醒一下:所有的配置必须放在<context></context>之间
评论
beyondcf
2008-07-07
好东西,收藏了,楼主写的很详细。
有个问题想请教:
楼主说的
方法一:
直接在tomcat_home/conf/localhost/下建立一个xml文件。“tomcat_home/conf/localhost/”这个路径,如果默认情况下TOMCAT中的conf下没有localhost文件夹怎么办呢?自己新建一个?
有个问题想请教:
楼主说的
方法一:
直接在tomcat_home/conf/localhost/下建立一个xml文件。“tomcat_home/conf/localhost/”这个路径,如果默认情况下TOMCAT中的conf下没有localhost文件夹怎么办呢?自己新建一个?
发表评论
- 浏览: 30492 次
- 性别:

- 来自: 大连

- 详细资料
搜索本博客
我的相册
strutsWorkflow
共 3 张
共 3 张
最近加入圈子
链接
- 冰封太子
- 个人博客
- eclipse-API 函数
- eclipse-SWT资源
- Eclipse-下载
- hibernate-官方网站
- html-教程与代码
- html-教程与代码
- html-蓝色理想
- html-语言教程
- Javascript-基础教程
- PowerDesigner视频
- 流星絮语 JAVA学习笔记
- AppServNetword
- JDBC、SQLJ 的Oracle 驱动
- BeanSoft's Java Blog
- 面试时候经常会问的一些问题(不断补充中)
- Hibernate 3入門
- java学习
- 上帝的笔记本
- xiao
- 视频
- 尚学堂
- Intellij Idea下的iBatis
- vssplugin
- XDoclet最新下载包
- prototype.js官方
- 在线视频
- Ruby
- Aptana Studio
- 面试题集合
- 徐风城
- 最好的java源码
- java blog
最新评论
-
JSP购物车实例讲解
能不能写写struts2做成的购物车模块,把购物车放在session里面?
-- by chucai -
Struts 源码学习之Action ...
initChain()真是看不明白用了Commons Chain来搞了个CoR模 ...
-- by dvdface -
IntelliJ IDEA使用技巧一 ...
学习了!
-- by ziscloud -
ssh分页实例
else if ("next".equals(state)) 可以无止境的n ...
-- by figeonline -
js应用
这文章说什么的啊?能不能给个效果图啊?晕哎
-- by zhangzldipan






评论排行榜