myeclipse在struts中配置mysql的datasource
myeclipse在struts中配置mysql的datasource
一、
直接在struts-config.xml中右键data-sources 然后New。 默认的type是: org.apache.struts.util.GenericDataSource(但是我用MYECLIPSE5.5直接生成的这个类找不到,我把这个类改为org.apache.struts.legacy.GenericDataSource,该类位于struts-legacy.jar中,则一切OK) ,struts自带的一个数据库连接池。然后正确输入各种property的value。测试,好用。
如果将type选择为: org.apache.commons.dbcp.BasicDataSource 这个DBCP的数据库连接池。然后键入正确的value。测试,提示各种异常找不到Driver。(这个需要下载另外的几个jar包。)
查看DBCP的文档,发现MYECLIPSE生成的配置XML元素有问题。
DBCP需要的是driverClassName和username这两个properties。而Myeclipse自动生成的是driverClass和user这两个properties。改过来之后发现DBCP的数据库连接池也好用了,这应该不算是MYECLIPSE开发struts的一个BUG,只是因为其数据库连接池的配置是按照struts原先默认的GenericDataSource来的。
总结:
myeclipse自动生成的strust-config.xml有几点要注意:
1.driverClassName不是driverclass;
2.username不是user
3.不要设置loginTimeout.
需要下载的几个jar包:commons-dbcp.jar,commons-pool.jar,struts-legacy.jar,commons-collections.jar
注意commons-collections.jar,commons-pool.jar,commons-dbcp.jar,struts-legacy.jar还有数据库驱动一定要注意拷贝到tomcat/common/lib里面,或者web应用程序的web-inf/lib目录下。不要放到Java安装目录的lib目录下边,因为会有冲突!
如果沒有这几个包文件,就会出现类似以下的错误:
2007年12月20日 下午03:22:26 org.apache.struts.action.ActionServlet initModuleDataSources
严重的: Initializing application data source mysqlDB
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
另外,struts1.2在使用struts-config.xml中的 <data-sources>来配置数据源的时候,要是配置不正确的话,会发生一些奇怪的错误,在提交表单的时候可能会出现
type:Status report
message:Servlet action is not available
description:The requested resource (Servlet action is not available) is not available。
这样的错误 ,也就是找不到action类。原因可能也是缺少上述几个jar包和数据库驱动包。