tomcat5.027报Cannot load JDBC driver的错误
AiQun 2005-08-14 02:16:25 我前几天做好了一个例子,使用tomcat连接池连接mssql数据,当时
msbase.jar
mssqlserver.jar
msutil.jar
三个文件是放在的web-info/lib目录内
测试通过了
今天又修改了一些程序代码重新启动这个应用.可是tomcat报
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
错误.
然后我把这个应用及tomcat 池连接池配置.xml文件配置到另外一台机器上
ms的三个包仍然放在应用的web-info/lib目录内,tomcat版本是一样的.
测试通过
为什么产生这样的现象?
======================tomcat 池连接池配置==========================
<Context path="/example" docBase="G:/java/workspace/example/WebRoot"
debug="0" privileged="true">
<Resource name="jdbc/example"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/example">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MSSQLserver dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>555</value>
</parameter>
<!-- Class name for mssqlserver JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<!-- The JDBC connection url for connecting to your mssqlserver dB.-->
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://192.168.19.169:1433;databasename=pubs</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
</Context>
==================web.xml========================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Struts </display-name>
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>com.titans.util.web.character.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
<listener>
<listener-class>com.titans.util.web.online.OnlineCounterListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/config/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/login</param-name>
<param-value>/WEB-INF/config/struts-config-login.xml</param-value>
</init-param>
<init-param>
<param-name>config/main</param-name>
<param-value>/WEB-INF/config/struts-config-main.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/struts-nested.tld</taglib-location>
</taglib>
<resource-ref>
<description>DBSever Connection</description>
<res-ref-name>jdbc/example</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
==========================testDb.jsp======================
<%@ page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="com.titans.hibernate.*" %>
<%@ page import="com.titans.util.tools.Config" %>
<%@ page import="org.apache.log4j.Logger" %>
<%@ page import="org.apache.log4j.xml.DOMConfigurator"%>
<%
String foo = "连接池测试失败!";
int bar = -1;
Logger log = null;
try{
log = Config.getLogger(Config.class);
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("错误:连接池没有连接成功!");
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/example");
if (ds != null) {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection "+conn.toString();
Statement stmt = conn.createStatement();
stmt.executeUpdate("use pubs");
ResultSet rst = stmt.executeQuery("select * from orders");
log.info("select * from orders");
if(rst.next()) {
bar=rst.getInt("OrderID");
foo=rst.getString("CustomerID") + " ,连接池连接成功!";
}
conn.close();
}
}
}catch(Exception e) {
e.printStackTrace();
if(log!=null)
log.error("testDb.jsp错误:",e);
}
%>
<h2>Ms sql server 2000 java search Results</h2>
Foo <%= foo %><br/>
Bar <%= bar %>
</body>
</html>