Tomcat报错问题
我的strusts-config.xml 里面的配置是这样的
- XML code
<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&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驱动包是用于其他项目没问题,到底哪里错了呢?
[解决办法]
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
数据库驱动加载失败 是没有加载还是不能用 你可以换一个驱动试试
[解决办法]
大虾 我很想知道你使用的MySQL的JDBC驱动是那个版本的,怎么<set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />会是这样的呢?一般大家用的都是这样的啊“com.mysql.jdbc.Driver”
[解决办法]
org.gjt.mm.mysql.Driver 这个包放到common/lib下了吗?
报错不是说没找到吗?估计是没导入或者是放错文件夹了吧。
[解决办法]
org.gjt.mm.mysql.Driver 这个换个com.mysql.jdbc.Driver?
[解决办法]
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'这个是你自己封装的?
看看路径是否正确。
[解决办法]
Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
确认lib中mysql 的jar包 ?
看看你的mysql jar保重有这个类么 ?
[解决办法]
Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
LZ看看你的驱动这个类是否存在
[解决办法]
我刚发现你写的、、、第一句话,
你怎么把数据库连接 放在strusts-config.xml 里面了?
一种是放在Hibernate.cfg.xml
但基本上都放在另一种里
spring的applicationContext.xml
但是没看到一种像你这种竟然放在struts的xml里。。。
[解决办法]
<set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" /> 不是很理解
怎么不干脆写个properties文件呢 怎么配置在struts-config.xml里面 很是不解
[解决办法]
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&characterEncoding=utf-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>liang</value>
</property>
</bean>
</beans>
..
[解决办法]
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下。
[解决办法]
还有,看看你mysql里面是否有叫“bbsDB”的数据库。
[解决办法]
[解决办法]
明显的没有驱动jar。
你用什么数据库,就用什么匹配的驱动,这样一般不会出现奇怪问题。
[解决办法]
数据库的驱动包有问题吧。还有,你的driver class应该用:com.mysql.jdbc.Driver吧。
因为你用的是:mysql-connector-java-5.1.18-bin
[解决办法]