struts配置mysql数据源后tomcat不能连接mysql数据库的问题

yupengfeiwangcui 2008-05-06 12:34:11
我的配置文件是这样写的
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources >
<data-source key="org.apache.struts.action.DATA_SOURCE" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="Mysql Database" />
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="minCount" value="1" />
<set-property property="loginTimeout" value="3000" />
<set-property property="user" value="root" />
<set-property property="password" value="yuhuiling" />
<set-property property="url"
value="jdbc:mysql://127.0.0.1:3307/attacksolution?useUnicode=true&" />
<set-property property="maxCount" value="10" />
</data-source>
</data-sources>

<form-beans >
<form-bean name="AttackSolutionForm" type="shida.pengfei.struts.actionform.AttackSolutionForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings >
<action name="AttackSolutionForm" path="/AddAttackSolution" type="shida.pengfei.struts.action.AddAttackSolutionAction" />

</action-mappings>

<message-resources parameter="shida.pengfei.struts.ApplicationResources" />
</struts-config>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>mysql dbcp</description>
<res-ref-name>org.apache.struts.action.DATA_SOURCE</res-ref-name>
<res-type>org.apache.commons.dbcp.BasicDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

tomcat版本:6.1
mysql:5.0
我已经把需要的驱动都加到WEB-INF/lib文件夹下了
struts-legacy.jar
struts.jar
mysql-connector-java-5.1.6-bin.jar
commons-dbcp.jar
commons-pool.jar

但是每次都是相同的问题:
严重: Servlet /attacksolution threw load() exception
javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE
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:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by org.apache.commons.dbcp.SQLNestedException:Could't create JDBC driver of class "com.mysql.jdbc.driver" for Connect url 'NULL'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.commons.dbcp.BasicDataSource.setLoginTimeout(BasicDataSource.java:945)
...全文
330 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gimgen1026 2008-05-11
  • 打赏
  • 举报
回复
<set-property property="user" value="root" />
的 user 改成username试试,
1.2版本里是这么写的
老紫竹 2008-05-06
  • 打赏
  • 举报
回复
请参考这个 http://www.java2000.net/viewthread.jsp?tid=1906
不同的Tomcat版本,配置数据源的方法是不同的。哈哈!这个造成了许多人的困扰。
yupengfeiwangcui 2008-05-06
  • 打赏
  • 举报
回复
这么快就有人回复了,看来论坛的作用还真不小啊!呵呵!
我刚才又回想了一小,是不是common-dbcp.jar,common-pool.jar版本的问题,于是我就下载了最新版本的jar包,在commons-dbcp-1.2.2.tar.gz中的README文件中找到了下面的信息。
Apache Jakarta Commons DBCP
===========================

Welcome to the DBCP component of the Apache Jakarta Commons
project (http://jakarta.apache.org/commons).

DBCP uses Maven 1 (http://maven.apache.org) for build
process management. It is known to build with Maven 1.0.2,
though other versions may also work.

To build DBCP using Maven, type "maven" at a command line prompt
from the top-level directory of the source distribution (the directory
that contains the file named project.xml).

DBCP can also be built using Ant from the build.xml file.
Locations of dependent jars for the Ant build need to be specified in
build.properties. There is a build.properties.sample file included in the
source distribution.

The binary distribution was built using JDK 1.4.2_10. The Ant build includes
conditional compilation to support building on JDK 1.3.

This release of JDBC compiles with and supports JDK 1.3 (JDBC 2.0) and
JDK 1.4-1.5 (JDBC 3.0). JDK 1.6 (JDBC 4.0) is not supported by this release.

See http://jakarta.apache.org/commons/dbcp/ for additional and
up-to-date information on Commons DBCP.
原来是我的JDK版本高了,唉,真郁闷啊!
~~~~~都是版本不一致弄的~~~~~

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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