我的strusts-config.xml 里面的配置是这样的<data-sources>
<data-source key="bbsDB" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />
<set-property property="url" value="jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=UTF-8" />
<set-property property="username" value="root" />
<set-property property="password" value="liang" />
</data-source>
</data-sources>Tomcat启动时报了三个错误严重: Initializing application data source bbsDB
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.java:959)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:808)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
... 15 more
2012-3-31 8:48:50 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet action as unavailable
2012-3-31 8:48:50 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /BBS threw load() exception
javax.servlet.UnavailableException: Initializing application data source bbsDB
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:812)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2012-3-31 8:48:50 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory BBS.myeclip我的Mysql驱动包是用于其他项目没问题,到底哪里错了呢?

解决方案 »

  1.   

    org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
     数据库驱动加载失败 是没有加载还是不能用 你可以换一个驱动试试
      

  2.   

    大虾 我很想知道你使用的MySQL的JDBC驱动是那个版本的,怎么<set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />会是这样的呢?一般大家用的都是这样的啊“com.mysql.jdbc.Driver”
      

  3.   

    org.gjt.mm.mysql.Driver 这个包放到common/lib下了吗?报错不是说没找到吗?估计是没导入或者是放错文件夹了吧。
      

  4.   

    org.gjt.mm.mysql.Driver 这个换个com.mysql.jdbc.Driver?
      

  5.   

    我的Mysql 驱动包是这个 :mysql-connector-java-5.1.18-bin
      

  6.   

    jdbc驱动Jar包没有放在正确的目录
    或者jdbc的驱动Jar没有放置或放置位置不正确Initializing application data source bbsDB
    javax.servlet.UnavailableException: Initializing application data source bbsDB当前对象无法获得而出现的异常
    org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
    无法加载数据库驱动、、
    'org.gjt.mm.mysql.Driver'这个是你自己封装的?
    看看路径是否正确。
      

  7.   

    Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
    确认lib中mysql 的jar包 ?
    看看你的mysql jar保重有这个类么 ?
      

  8.   

    驱动包我是放在 lib 里面的,我的lib里面就这些包:
    antlr.jar 
    commons-beanutils.jar
    commons-digester.jar
    commons-fileupload.jar
    commons-logging.jar
    commons-validator.jar
    jakarta-oro.jar
    mysql-connector-java-5.1.18-bin
    struts.jar
      

  9.   


    common目录下没有lib,我是放在WEB-INF里面的lib里面的
      

  10.   

    Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'LZ看看你的驱动这个类是否存在
      

  11.   


    有的,按照楼上多位朋友的意见,我把'org.gjt.mm.mysql.Driver' 更改为了“com.mysql.jdbc.Driver”但依然报错
      

  12.   

    我刚发现你写的、、、第一句话,
    你怎么把数据库连接 放在strusts-config.xml 里面了?
    一种是放在Hibernate.cfg.xml
    但基本上都放在另一种里
    spring的applicationContext.xml
    但是没看到一种像你这种竟然放在struts的xml里
      

  13.   

    <set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" /> 不是很理解
    怎么不干脆写个properties文件呢 怎么配置在struts-config.xml里面 很是不解
      

  14.   

    struts-confi.xml里一般都是
    <struts-config>
      <form-beans>
        对应的from
      </form-beans>
      <action-mappings>
        对应的action 及跳转
      </action-mappings>
    </struts-config>
    而hibernate.cfg.xml/applicationContext.xml
    <beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close"> <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
    </property> <property name="url">
    <value>jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=utf-8</value>
    </property> <property name="username">
    <value>root</value>
    </property> <property name="password">
    <value>liang</value>
    </property>
    </bean>
    </beans>
    ..
      

  15.   

    org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'既然程序报这个错,说明它根据你的配置去找lib和classes里面,没有找到相应的class。
    你看一看你tomcat下的lib下的mysql驱动jar里有没有这类。注意,是tomcat的两个lib下,而不是你源程序的lib下。
      

  16.   

    还有,看看你mysql里面是否有叫“bbsDB”的数据库。
      

  17.   

    jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=utf-8我无语。。
    数据库明明是bbs。
    去哪找bbsDB...
      

  18.   

    明显的没有驱动jar。你用什么数据库,就用什么匹配的驱动,这样一般不会出现奇怪问题。
      

  19.   

    数据库的驱动包有问题吧。还有,你的driver class应该用:com.mysql.jdbc.Driver吧。
    因为你用的是:mysql-connector-java-5.1.18-bin
      

  20.   


    用了 com.mysql.jdbc.Driver 试过的,还是报错
      

  21.   

    跟之前的错误一样的,然后我就觉得奇怪了,为什么还是一模一样的错误呢?然后我就把Tomcat目录下的work文件夹里面的内容全部删掉,在Myeclipse里面也把这个项目删除重新导入,重新按照楼上各位朋友给的意见配置。然后就搞定了!呵呵!
      

  22.   

    你没把数据库驱动包放进tomcat中,这就是原因。连接池是应用服务器提供的,tomcat不是应用服务器,tomcat的连接池不能在mian方法中运行只能借助于web容器运行,也就是必须是在tomcat中运行所以当你用到数据连接池时,记得把你的数据库驱动包放进tomcat中。