精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-27
这里我的Tomcat版本为5.0.28,这个版本应该说是Tomcat比较稳定的一个版本。 首先备份你的$TomcatHome$/conf/server.xml文件($TomcatHome$是指你的tomcat安装路径),然后在<Host>节点下添加: <Context path="/pool" docBase="pool"> <Resource name="jdbc/test" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/test"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- DBCP database connection settings --> <parameter> <name>url</name> <value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs</value> </parameter> <parameter> <name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>sa</value> </parameter> <!-- DBCP connection pooling options --> <parameter> <name>maxWait</name> <value>3000</value> </parameter> <parameter> <name>maxIdle</name> <value>100</value> </parameter> <parameter> <name>maxActive</name> <value>10</value> </parameter> </ResourceParams> </Context> 其中红色部分是你需要修改的。 <Context path="/pool" docBase="pool">这里的pool是指你的项目在tomcat发布目录webapps下的目录路径,这里我的项目目录为:.../webapps/pool <Resource name="jdbc/test"..>jdbc/test为需要通过jndi调用的数据源名称。 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>这里我们用的是dbcp连接池包,这是apache提供的一个免费开源连接池,而且效率和稳定性都不错。如果你使用的是tomcat5x或以上的版本,可以在$TomcatHome$/common/lib目录下找到它。 关于数据库的设置,这里就不在多说。 下面打开web.xml文件,在其根节点下添加数据源的引用设置。 <resource-ref> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 最后我们在代码中从连接池获得Connection对象。 Context context = new InitialContext(); //获得数据源 DataSource ds = context.lookup("java:comp/env/jdbc/test"); //获取连接 Connection conn = ds.getConnection(); 这样我们就在代码中获得了Connection对象,至于剩下的操作,就完全是jdbc操作了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-09-27
tomcat 5.5对此做了重大改进,写法大大的不一样了。
|
|
返回顶楼 | |
发表时间:2006-09-27
Tomcat5.5以上版本没用过,按了两次都没起来服务,也就懒得管了。
|
|
返回顶楼 | |
发表时间:2006-09-27
我直接在jbuilder里配置数据源的,
感觉挺简单的,用jtds可以不用dbcp, jb启动站点的时候会有一个tomcat文件夹,里面的子文件夹conf里有 server8080.xml 在它的context里加的 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="net.sourceforge.jtds.jdbcx.JtdsDataSource" url="jdbc:jtds:sqlserver://127.0.0.1:1433/pubs" maxActive="8" maxIdle="4" /> 同时修改一下web.xml文件 <resource-ref> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>net.sourceforge.jtds.jdbcx.JtdsDataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 另外,最好把jtds的jar文件放到{jbuilder_home}/thirdparty/jakarta-tomcat-5.5.9/common/lib下 就行了 |
|
返回顶楼 | |
发表时间:2006-09-28
iyuohz 写道 我直接在jbuilder里配置数据源的,
感觉挺简单的,用jtds可以不用dbcp, jb启动站点的时候会有一个tomcat文件夹,里面的子文件夹conf里有 server8080.xml 在它的context里加的 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="net.sourceforge.jtds.jdbcx.JtdsDataSource" url="jdbc:jtds:sqlserver://127.0.0.1:1433/pubs" maxActive="8" maxIdle="4" /> 同时修改一下web.xml文件 <resource-ref> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>net.sourceforge.jtds.jdbcx.JtdsDataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 另外,最好把jtds的jar文件放到{jbuilder_home}/thirdparty/jakarta-tomcat-5.5.9/common/lib下 就行了 javax.servlet.ServletException: Cannot create resource instance javax.naming.NamingException: Cannot create resource instance 按照你说的配的,抛出这两条异常信息,不知是什么原因? 请问你的Tomcat的版本? |
|
返回顶楼 | |
发表时间:2006-09-28
http://localhost:8080/admin/frameset.jsp
在控制台配还好些,出错的机率比较小! |
|
返回顶楼 | |
发表时间:2006-09-29
引用 按照你说的配的,抛出这两条异常信息,不知是什么原因? 请问你的Tomcat的版本? 我的tomcat 是jbuilder2006里自带的 |
|
返回顶楼 | |
发表时间:2006-09-29
个人认为也是在admin下配置更安全更方便一些.
|
|
返回顶楼 | |
发表时间:2006-10-15
当使用了spring容器时,
让tomcat维护,与让spring维护,两者性能上差不多! 但前者编程复杂度会上升!后者更容易集成入应用! |
|
返回顶楼 | |
发表时间:2006-10-26
很久以前就遇到的问题,连接池经常无可用连接,重启动tomcat后正常,代码中应该没有问题,设置了使用过的连接为null,问题出在哪里呢?
|
|
返回顶楼 | |