现在的位置: 首页 > 综合 > 正文

Tomcat6.0建立虚拟目录以及数据源配置流程

2017年12月01日 ⁄ 综合 ⁄ 共 1792字 ⁄ 字号 评论关闭

我用的建立虚拟目录的方法:

在Tomcat 6.0\conf\Catalina\localhost(要是没有这个localhost你就自己建一个,我用的install版的,安装模式full,自带这个目录)下建立自己站点的context.xml

                配置如下:在context元素中设置属性 docBase="你的站点绝对路径地址,第一层目录" 正常是<Context docBase="地址" />但是后来加了数据源就有了改动

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="d:/UserManage">

	<Resource name="jdbc/lhdb" auth="Container" type="javax.sql.DataSource" 
    					maxActive="100" maxIdle="30" maxWait="1000" 
						username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/lhdb" />
</Context>

         启动tomcat,你会看到控制台上有加载你自己虚拟目录的信息,你的站点要安装规范建立(WEB-INF什么的就不唠叨了)

 在manager中,可以reload自己的虚拟目录

数据源连接池,我擦的,这个可是郁闷死我了,就因为粗心大意,配置了好久,各位汲取我的教训吧

我是按照tomcat里的doc帮助文档里面的方式配的,文档所在目录:http://localhost:8080/docs/jndi-datasource-examples-howto.html 

分别配置了 自己站点下的 context.xml(META-INF目录下) 和 自己站点下的 web.xml (WEB-INF目录下)以及在tomcat 目录中的localhost里的context.xml,就是最上面那个

                

<Context>
	<Resource name="jdbc/lhdb" auth="Container" type="javax.sql.DataSource" 
    					maxActive="100" maxIdle="30" maxWait="1000" 
						username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/lhdb" />
</Context>

 <resource-ref>
      <description>MySql Conneciton</description>
      <res-ref-name>jdbc/lhdb</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

这样就配置好了,按照基本流程配置不会出什么问题,一般会抛出cannot create jdbc driver 这个你把数据库驱动jar包扔到tomcat里的lib中和自己站点里的lib中

如果要是出现cannot create PoolableConnectionFactory(Communications link failure 建议你检查一下数据源配置的url  我纠结了一天就是因为我把local写成了locol

使用:

import java.sql.*;
import javax.sql.*;
import javax.naming.*;

public class ConnDB{
	private Connection ct = null;
	
	public Connection getConn(){
		
		try{
			Context initCtx = new InitialContext();
			Object obj = initCtx.lookup("java:comp/env/jdbc/lhdb");
			DataSource ds = (DataSource)obj;
			ct = ds.getConnection();
		}catch(Exception e){
			e.printStackTrace();
		}
		return ct;
	}
	

ok

抱歉!评论已关闭.