前面的一些准备工作在下面的文章中已经叙述了:
(转)http://blog.csdn.net/ggjjzhzz/archive/2004/09/13/103346.aspx
对照上面的文章,我在tomcat 5.0.28中测试连接DB2数据库,在部署时即出错:
Cannot create JDBC driver of class 'COM.ibm.db2.jdbc.app.DB2Driver' for connect URL 'jdbc:db2:FTPDATA'
经过在网上的google和学习,终于解决了这个问题:
1、struts-config.xml中的datasource配置
<data-sources>
<data-source id="DS" key="DB2" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
<set-property property="autoCommit" value="true"/>
<set-property property="description" value="Ftp Data Source"/>
<set-property property="user" value="db2admin"/>
<set-property property="password" value="db2admin"/>
<set-property property="url" value="jdbc:db2:FTPDATA"/>
</data-source>
</data-sources>
需要注意的是,struts 1.2中的property “driveClassName”在struts 1.1中是“driverClass”,别搞错了。
我用的DB2是7.2,采用的是JDBC 2.0 driver,,所以要在C:\Program Files\SQLLIB\java12的目录下运行usejdbc2.bat,同时将该目录下的db2java.zip复制到你的web-inf的lib目录下,改后缀为jar。
2、配置web.xml
在web.xml中的最后加入:
<resource-ref>
<description>IBM DB2 Connection</description>
<res-ref-name>jdbc/FTPDATA</res-ref-name>
<res-type>COM.ibm.db2.jdbc.app.DB2Driver</res-type>
<res-auth>Container</res-auth>
</resource-ref>
说明:FTPDATA是数据源名称,在DB2 客户机配置工具中可以配置。
昨天晚上我调试时,根据网上的一些文章,加上这段resouce-ref就连通了。
但是今天早上,我不加这一段resource-ref,竟然也可以连通DB2,原以为在eclipse发布project时会在tomcat的server.xml中加入这一段resource-ref,但我在tomcat的server.xml中找不到。
所以这一点还要高手指点。
在eclipse 3.0的J2EE VIEW中启动apache tomcat 5.x后,第一次发布正常,可是当我修改了web.xml或其他程序再发布时,也会报类似的错:
Cannot create JDBC driver of class 'COM.ibm.db2.jdbc.app.DB2Driver' for connect URL 'jdbc:db2:FTPDATA'
这个问题,不知是否tocmat的bug,如果每次调试都要先停止server,再发布project,再启动server,真的很麻烦。