我是用的tomcat 5.5.27+sql 2000,打了sp4补丁,导入了驱动包,项目名字叫做target,放在C:\apache-tomcat-5.5.27\webapps\target目录下了,我最近在搞这个连接池的问题,我把server.xml和web.xml都配置了但是始终报错Cannot create JDBC driver of class '' for connect URL 'null'。
1.server.xml 的<host></host>标签里加入了
<Context path="/target" docBase="C:\apache-tomcat-5.5.27\webapps\target" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" username="sa" password="br13jhhrhl" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target" maxActive="100" maxIdle="30" maxWait="10000"/>
</Context>
2.web.xml的<WEB-APP></web-app>标签里加入了
<resource-ref>
<description>DB connect</description>
<res-ref-name>jdbc/target</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
都配置好了但是还是出错,那位高手帮帮忙,看看我到底那里错了?
我的程序代码是:
public class DBConnection { private static Connection conn; /**
* 使用JNDI方式连接数据库,并返回连接
*
* @return Connection
*/
public static synchronized Connection getConnectionForJndi()
throws DBAccessException { try {
Context ic = new InitialContext(); DataSource source = (DataSource) ic
.lookup("java:comp/env/jdbc/target");
conn = source.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
1.server.xml 的<host></host>标签里加入了
<Context path="/target" docBase="C:\apache-tomcat-5.5.27\webapps\target" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" username="sa" password="br13jhhrhl" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target" maxActive="100" maxIdle="30" maxWait="10000"/>
</Context>
2.web.xml的<WEB-APP></web-app>标签里加入了
<resource-ref>
<description>DB connect</description>
<res-ref-name>jdbc/target</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
都配置好了但是还是出错,那位高手帮帮忙,看看我到底那里错了?
我的程序代码是:
public class DBConnection { private static Connection conn; /**
* 使用JNDI方式连接数据库,并返回连接
*
* @return Connection
*/
public static synchronized Connection getConnectionForJndi()
throws DBAccessException { try {
Context ic = new InitialContext(); DataSource source = (DataSource) ic
.lookup("java:comp/env/jdbc/target");
conn = source.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at xxsjavacode.javacode2.common.DBConnection.getConnectionForJndi(DBConnection.java:33)
at xxsjavacode.javacode2.operation.UserBo.validUser(UserBo.java:26)
at xxsjavacode.javacode2.servlet.LoginServlet.doPost(LoginServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" username="sa" password="br13jhhrhl" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target" maxActive="100" maxIdle="30" maxWait="10000"/>
</Context>
更改成
<Context path="/target" docBase="C:\apache-tomcat-5.5.27\webapps\target" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" >
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>br13jhhrhl</value>
</parameter> <parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter> <parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target</value>
</parameter> <parameter>
<name>maxActive</name>
<value>100</value>
</parameter> <parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</Context>
试试看
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" >
<ResourceParams name="jdbc/test">
<parameter>
<name>username </name>
<value>sa </value>
</parameter>
<parameter>
<name>password </name>
<value>br13jhhrhl </value>
</parameter> <parameter>
<name>driverClassName </name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver </value>
</parameter> <parameter>
<name>url </name>
<value>jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target </value>
</parameter> <parameter>
<name>maxActive </name>
<value>100 </value>
</parameter> <parameter>
<name>maxIdle </name>
<value>30 </value>
</parameter>
<parameter>
<name>maxWait </name>
<value>10000 </value>
</parameter>
</ResourceParams >
</Context>
找不到JDBC驱动包,有没有把JDBC驱动包放在TOMCAT
\apache-tomcat-6.0.13\lib\目录下????由于它找不到该JDBC包创建不了对象所以就报异常了!!!
1.拷贝到tomcat/common/lib下即可。
2.通过admin用户登录,查看一下数据源是否配置好?
commons-dbcp.jar
commons-pool.jar
这三个jar包必须导进去,然后加上你自己的sql2000的数据库jar包
然后再试试
<Context path="/target" docBase="C:\apache-tomcat-5.5.27\webapps\target" debug="0">
<Resource name="jdbc/target" auth="Container" type="javax.sql.DataSource" >
<ResourceParams name="jdbc/test">
<parameter>
<name>username </name>
<value>sa </value>
</parameter>
<parameter>
<name>password </name>
<value>br13jhhrhl </value>
</parameter> <parameter>
<name>driverClassName </name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver </value>
</parameter> <parameter>
<name>url </name>
<value>jdbc:microsoft:sqlserver://192.168.5.19:1433;DatabaseName=target </value>
</parameter> <parameter>
<name>maxActive </name>
<value>100 </value>
</parameter> <parameter>
<name>maxIdle </name>
<value>30 </value>
</parameter>
<parameter>
<name>maxWait </name>
<value>10000 </value>
</parameter>
</ResourceParams >
</Context>
希望能帮上你
maxIdle="30"
username="sa"
password="236236"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>然后在web.xml中 <resource-ref>
<description>a @book dbcp</description>
<res-ref-name>jdbc/name</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>我写的连接字符串是sql2005的 你改成2000的足矣 顺便把jar包也要放到Tomcat 下
ok!