▁▂▃▄▅▆▇█100分求解:Struts1.1数据库配置问题
我的程序用MSSqlServer一切正常,一旦我把我的数据库转到DB2下就出现以下异常.
我用的是struts1.1,Apache dbcp数据源.
struts-config.xml中有关数据库配置部分代码如下:
<data-sources>
<data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="COM.ibm.db2.jdbc.app.DB2Driver" />
<set-property property="url" value="jdbc:db2://211.87.231.13:50000/ZSBM" />
<set-property property="username" value="da" />
<set-property property="password" value="da" />
<set-property property="defaultAutoCommit" value="false" />
<set-property property="maxActive" value="10" />
<set-property property="maxWait" value="100" />
</data-source>
</data-sources>
以上连接方式在普通JSP中连接一切正常,一旦移到struts中就
出现以下异常:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'COM.ibm.db2.jdbc.app.DB2Driver' for connect URL 'jdbc:db2://211.87.231.13:50000/ZSBM', cause:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:243)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:743)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.java:576)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1087)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:810)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3279)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3421)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
at org.apache.catalina.core.StandardService.start(StandardService.java:388)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
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:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
问题点数:100、回复次数:20Top
1 楼totodo(土豆仙)回复于 2004-04-04 10:58:20 得分 37
No suitable driver
好象驱动不对。。。Top
2 楼litBreathe()回复于 2004-04-04 11:30:14 得分 1
'COM.ibm.db2.jdbc.app.DB2Driver'
中的COM应该是小写com吧?Top
3 楼litBreathe()回复于 2004-04-04 11:31:33 得分 1
如果不是小写的话,那就是你的类包没放在WEB-INF/lib下。Top
4 楼postfather(Ben)回复于 2004-04-04 11:37:16 得分 1
COM.ibm.db2.jdbc.app.DB2Driver没错,应该是驱动程序没有放在lib下Top
5 楼oneonone()回复于 2004-04-04 12:22:42 得分 0
驱动程序已经放到了/WEB-INF/lib目录下了
我要是把驱动程序包删除掉的话,它会报:ClassNotFountException
但是它报的是No suitable driver
这就不知道是什么原因了.Top
6 楼totodo(土豆仙)回复于 2004-04-04 14:42:18 得分 0
那就说明 驱动程序的名字 与“COM.ibm.db2.jdbc.app.DB2Driver”不匹配阿。
要不你把驱动程序的解压包,打开看看,是不是有足够类,是不是大小写写错了??Top
7 楼oneonone()回复于 2004-04-04 15:14:36 得分 0
这个包是IBM的DB2 数据库自己带来的,不会有错,
而且我也打开这个包看了,确实有这样的类,大小写也没错。
关键是,我在JSP里用同样的一段配置string,它就能正常地连接到数据库
而一到了struts里面,我连接sqlServer数据库时也是正常的,
就是一旦改到DB2数据库就不正常了。
Top
8 楼oneonone()回复于 2004-04-04 22:24:22 得分 0
UPTop
9 楼yy2002happy(含笑竹)回复于 2004-04-04 22:48:13 得分 1
帮你顶!!!
楼主大家一起学习吧!
各位大虾
不要吝啬你们的手指吧!!!Top
10 楼kewin(新的启步)回复于 2004-04-05 09:12:34 得分 27
No suitable driver
好像是驱动不对呀Top
11 楼wojiaoliufeng(木喜)回复于 2004-04-05 12:52:36 得分 1
虽然我是外行
还是帮你up一下Top
12 楼wsgws(gws)回复于 2004-04-06 10:36:03 得分 1
upTop
13 楼oneonone()回复于 2004-04-07 09:28:14 得分 0
UPTop
14 楼oneonone()回复于 2004-04-14 08:09:57 得分 0
UPTop
15 楼ljclchy(悠悠)回复于 2004-04-14 12:29:27 得分 1
这样建立连接试试:
安装db2 client,然后做catalog,修改
<set-property property="url" value="jdbc:db2://211.87.231.13:50000/ZSBM" />
value为jdbc:db2:ZSBM,尝试连接,应该可以Top
16 楼aku0708(怀念奶茶)回复于 2004-04-14 14:24:04 得分 1
upTop
17 楼fool4(eric)回复于 2004-04-14 23:00:16 得分 1
我觉得是端口搞错了,DB2应该6789端口,如果你没有修改过配置的话
value="jdbc:db2://211.87.231.13:6789/ZSBM"Top
18 楼filippo1980(药师★(腐败中......))回复于 2004-04-14 23:53:39 得分 27
首先注意大小写,然后我觉得也是你的驱动包可能有问题!Top
19 楼oneonone()回复于 2004-05-09 17:41:37 得分 0
问题已经解决
原因是当DB2数据库服务器与WebServer不在同一台机器上时,不能用
COM.ibm.db2.jdbc.app.DB2Driver
而只能用db2jcc.jar中的
com.ibm.db2.jcc.DB2Driver
但是还有一个叫COM.ibm.db2.jdbc.net.DB2Driver的驱动程序.详细原因请参阅下面的网址.
http://www-900.ibm.com/developerWorks/cn/dmdd/library/techarticles/0402chenjunwei/0402chenjunwei.shtmlTop
20 楼oneonone()回复于 2004-05-09 17:42:21 得分 0
加上以上这些东西后就完整了.Top




