大伙来看看一个错误,帮忙解决一下

Quanqingweiloving 2010-10-15 09:46:46
是在ssh整合启动tomcat时报错,有导jdbc

21:32:47,195 WARN DriverManagerDataSource:107 - Could not load driverClass com.microsoft.sqlserver.jdbc.SQLServerDriver
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:100)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:132)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

applicationContext.xml代码
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value> com.microsoft.sqlserver.jdbc.SQLServerDriver </value>
</property>
<property name="jdbcUrl">
<value> jdbc:sqlserver://localhost:1433;DatabaseName=shopping </value>
</property>
<property name="user">
<value>sa</value>
</property>
<property name="password">
<value>sa</value>
</property>

<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>

<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>

<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>

<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>

<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>

<!--
JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0
-->
<property name="maxStatements">
<value>0</value>
</property>

<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>

<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>

<!--
获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false
-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>

<!--
因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false
-->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
...全文
199 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Quanqingweiloving 2010-10-16
  • 打赏
  • 举报
回复
Quanqingweiloving 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kebin0001 的回复:]

java.lang.ClassNotFoundException
這個錯誤就是你沒把 JDBC 的 jar放到正確的classpath。
放 WEB-INF/lib 或server的共用library目錄。
[/Quote]

我是放WEB-INF/lib里的!
Quanqingweiloving 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxmxrx 的回复:]

你用的是2000的还是2005的驱动程序?它们是用区别的。
Microsoft SQL Server 2.0驱动(3个jar的那个):
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://lo……
[/Quote]

我的是2005的,两种方法用过了,还是不能解决的问题
我导的jar包如下:





zn85600301 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxmxrx 的回复:]

你用的是2000的还是2005的驱动程序?它们是用区别的。
Microsoft SQL Server 2.0驱动(3个jar的那个):
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://lo……
[/Quote]
JAR包和 驱动类不匹配 就是这意思
_LiuHui 2010-10-16
  • 打赏
  • 举报
回复
鄙视 截图的》》》》》》》》LS
_LiuHui 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 quanqingweiloving 的回复:]

[/Quote]
en
voice1122 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxmxrx 的回复:]
你用的是2000的还是2005的驱动程序?它们是用区别的。
Microsoft SQL Server 2.0驱动(3个jar的那个):
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://localhost:……
[/Quote]

同意。
LZ贴出来的异常,说明加载驱动失败,就先找与驱动有关的问题
happysmhzp 2010-10-15
  • 打赏
  • 举报
回复
添加数据可驱动的jar包了吗
kevin#1 2010-10-15
  • 打赏
  • 举报
回复
数据库驱动原因 数据库包直接 放到工程 WEB-INF/lib 里面应该既可以了
waiter081 2010-10-15
  • 打赏
  • 举报
回复
驱动的问题!
kebin0001 2010-10-15
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException
這個錯誤就是你沒把 JDBC 的 jar放到正確的classpath。
放 WEB-INF/lib 或server的共用library目錄。
夜半微凉 2010-10-15
  • 打赏
  • 举报
回复
你用的是2000的还是2005的驱动程序?它们是用区别的。
Microsoft SQL Server 2.0驱动(3个jar的那个):
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名

Microsoft SQL Server 3.0驱动(1个jar的那个): //
String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧