当前位置: 技术问答>java相关
在tomcat中怎样配置jdbc连接池,请高手帮忙。
来源: 互联网 发布时间:2015-08-16
本文导语: 在tomcat中怎样配置jdbc连接池,请高手帮忙。 wy2000@sina.com | http://61.144.28.245/hjc/mycgi/bbs/topic.cgi?forum=43&topic=24 tomcat到了4.0后,终于引入了连结池技术,实际上好像只是别人的东西整合了进来。...
在tomcat中怎样配置jdbc连接池,请高手帮忙。
wy2000@sina.com
wy2000@sina.com
|
http://61.144.28.245/hjc/mycgi/bbs/topic.cgi?forum=43&topic=24
tomcat到了4.0后,终于引入了连结池技术,实际上好像只是别人的东西整合了进来。还有那个“超级”server.xml,几乎把所有的配置都丢在了里面,再加上它的help相比起来不是太理想。因此对于配置tomcat来说,的确是件很头疼的事。
不过tomcat中配置数据库连结池的具体操作,tomcat已经有了比较详细的文档
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html
这篇文档同样可以在tomcat4.0及更高版本安装后的目录里找到。以前一直认为这篇文档内容很模糊,而且例子太少。连结池配了很久都没有成功,配置成功后回头看它的内容还都是对的,只能认为是自己E文水平和理解力不行。
所以下面将自己对tomcat文档的一些理解和调试过程中的一些体会,通过中文表达出来,而不是完全的翻译。
按J2EE标准配置连结池,至少需要改动两个文件 $CATALINA_HOME/conf/server.xml 和 /WEB-INF/web.xml。而tomcat中,所用数据库的驱动可以用jar文件的形式(驱动为zip文件的,改后缀名为jar即可)放在$CATALINA_HOME/common/lib目录下(tomcat会自动加载该目录中jar文件),本例中就是把oracle的JDBC驱动classes12.zip更名为classes12.jar使用的。
首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:
...
user
password
driverClassName
sun.jdbc.odbc.JdbcOdbcDriver
driverName
jdbc:odbc:test
...
这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个
如果把上面的代码放在这个之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的,并设置相应的连结资源。
言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examplesWEB-INF目录下的web.xml文件中加入如下代码:
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
jdbc/Test
javax.sql.DataSource
Container
完毕后,就可以写测试用的JSP文件了(test.jsp):
把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。
如果不成功,请参阅tomcat关于JNDI的文档,再仔细分析一边。
另外,还有几点需要说明:
1、曾经发过关于Tomcat4.0配置的贴子:
http://61.144.28.245/hjc/mycgi/bbs/topic.cgi?forum=23&topic=515&show=225
里面用的是在某些情况下通不过,估计跟目录有关,希望各位注意。
2、也曾经也发过贴子说tomcatv4.1.3-beta安装版里面有一个管理控制页面,可以设置很多功能包括配置连结池。当时只是说说,并没有测试。今天花了点时间也配成功了,似乎在这个版本中必须要设置WEB-INF目录下的web.xml文件才能够正常调用数据连结池。
写的可能有些零乱,这只是一个简单的指导。大家调试同时也看看tomcat的JNDI文档,希望有所帮助。
对于调试不成功的,不想做专门回答。多试试几个版本(包括tomcat的安装版和解压)和环境,体会一下。
测试环境Windows2000+tomcat4.0(zip-version)
tomcat到了4.0后,终于引入了连结池技术,实际上好像只是别人的东西整合了进来。还有那个“超级”server.xml,几乎把所有的配置都丢在了里面,再加上它的help相比起来不是太理想。因此对于配置tomcat来说,的确是件很头疼的事。
不过tomcat中配置数据库连结池的具体操作,tomcat已经有了比较详细的文档
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html
这篇文档同样可以在tomcat4.0及更高版本安装后的目录里找到。以前一直认为这篇文档内容很模糊,而且例子太少。连结池配了很久都没有成功,配置成功后回头看它的内容还都是对的,只能认为是自己E文水平和理解力不行。
所以下面将自己对tomcat文档的一些理解和调试过程中的一些体会,通过中文表达出来,而不是完全的翻译。
按J2EE标准配置连结池,至少需要改动两个文件 $CATALINA_HOME/conf/server.xml 和 /WEB-INF/web.xml。而tomcat中,所用数据库的驱动可以用jar文件的形式(驱动为zip文件的,改后缀名为jar即可)放在$CATALINA_HOME/common/lib目录下(tomcat会自动加载该目录中jar文件),本例中就是把oracle的JDBC驱动classes12.zip更名为classes12.jar使用的。
首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:
...
user
password
driverClassName
sun.jdbc.odbc.JdbcOdbcDriver
driverName
jdbc:odbc:test
...
这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个
如果把上面的代码放在这个之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的,并设置相应的连结资源。
言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examplesWEB-INF目录下的web.xml文件中加入如下代码:
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
jdbc/Test
javax.sql.DataSource
Container
完毕后,就可以写测试用的JSP文件了(test.jsp):
把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。
如果不成功,请参阅tomcat关于JNDI的文档,再仔细分析一边。
另外,还有几点需要说明:
1、曾经发过关于Tomcat4.0配置的贴子:
http://61.144.28.245/hjc/mycgi/bbs/topic.cgi?forum=23&topic=515&show=225
里面用的是在某些情况下通不过,估计跟目录有关,希望各位注意。
2、也曾经也发过贴子说tomcatv4.1.3-beta安装版里面有一个管理控制页面,可以设置很多功能包括配置连结池。当时只是说说,并没有测试。今天花了点时间也配成功了,似乎在这个版本中必须要设置WEB-INF目录下的web.xml文件才能够正常调用数据连结池。
写的可能有些零乱,这只是一个简单的指导。大家调试同时也看看tomcat的JNDI文档,希望有所帮助。
对于调试不成功的,不想做专门回答。多试试几个版本(包括tomcat的安装版和解压)和环境,体会一下。
测试环境Windows2000+tomcat4.0(zip-version)
|
tomcat不支持连接池。如果要用到的话,需要tomcat+jboss
修改在jboss的bossconftomcat目录下的文件:jboss.jcml
你要配类数据库连接池?
我这有一个informix的。
在jboss.jcml的66行:
org.hsqldb.jdbcDriver
改称:
org.hsqldb.jdbcDriver,com.informix.jdbc.IfxDriver
再加上以下这段:
org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl
inforDB
你的数据库的url
用户名
密码
修改在jboss的bossconftomcat目录下的文件:jboss.jcml
你要配类数据库连接池?
我这有一个informix的。
在jboss.jcml的66行:
org.hsqldb.jdbcDriver
改称:
org.hsqldb.jdbcDriver,com.informix.jdbc.IfxDriver
再加上以下这段:
org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl
inforDB
你的数据库的url
用户名
密码