Tomcat6.x+struts1.x+MySQL5.x连接池问题 - 编程入门网
Tomcat6.x+struts1.x+MySQL5.x连接池问题时间:2012-01-14 blogjava BBT_soft1.在项目的WebRoot/META-INF下建context.xml文件,注意必须在该目录下,Tomcat会自动找这个文件,Tomcat6.0以后就不用在web.xml中配置了: <?xml version="1.0" encoding="UTF-8"?> <Context reloadable="true" crossContext="true"> <Resource name="jdbc/test" ----------注意:test为项目名 auth="Container"----------该项为不变项 type="javax.sql.DataSource"----------该项为不变项 driverClassName="com.mysql.jdbc.Driver"----------数据库驱动名 url="jdbc:mysql://localhost:3306/haotian?autoReconnect=true"-------url username="root"-----用户名 password="root"------密码 maxActive="10" ------最大连接数 maxIdle="5" --------最大空闲连接数 maxWait="-1"/> ------最大等待毫秒数,-1为无限等待 </Context> 2.连接类: public class DBConnection { private Connection conn=null; public Connection getConnection(){ //生成上下文对象,通过它可以向容器发送别名. Context context; try { context = new InitialContext(); //查找对象 DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/test");//jdbc/test为配置文件中的name //得到连接 try { conn=ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } 3.把MySQL5.0的驱动包放到Tomcat的lib目录下,注意:是Tomcat的lib,而不是项目的lib。(不知道为什么会这样,之前不用这种连接池的时候放在项目的lib中就可以连接成功,但是现在就不可以,个人认为可能是context.xml使得Tomcat找自身lib中的驱动包,而不是项目中的驱动包) Tomcat6.x+struts1.x+MySQL5.x连接池问题(2)时间:2012-01-14 blogjava BBT_soft4.测试: 这里并非是在连接类里面写个main()就可以测试成功的,如果这样会出现下面的错误: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.lookup(Unknown Source) at util.DBConnection.getConnection(DBConnection.java:26) at util.DBConnection.main(DBConnection.java:49) 所以,只有通过和前台结合才能测试连接是否成功。 总结: context.xml必须在项目的WebRoot/META-INF,Tomcat会自动找这个文件; 数据库驱动包必须放在Tomcat的lib目录下(可能是Tomcat会根据context.xml在自身的lib目录下找驱动包); 不可以直接在连接类中写main()测试,必须和前台结合; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |