项目使用的框架环境是:
hibernate 3.3.2
struts 2.1.8.1
spring 2.5.6
DB2版本为 8.2在spring的配置文件中;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!--<property name="autoCommit" value="true" />-->
</bean><bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.tt.model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect/prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<!--<prop key="hibernate.hbm2ddl.auto">create</prop>-->
</props>
</property>
</bean>Properties 文件:
jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
jdbc.url=jdbc:db2:testdb
jdbc.username=db2admin
jdbc.password=123456在 DB2的命令行环境中连接数据库是正常的,但是TOMCAT就是启动不起来,报错信息:
07:04:17,609 ERROR ContextLoader:215 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\servicer\tomcat-6.0.20\webapps\familyPlanning\WEB-INF\classes\applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: COM.ibm.db2.jdbc.app.DB2DatabaseMetaData.supportsGetGeneratedKeys()Z
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)....................
..............  请教是什么原因啊??

解决方案 »

  1.   

    我是直接拷贝了 D:\IBM\SQLLIB\java目录下的db2java.zip。改名为 db2java.jar 以后加入项目的classhpath目录的
      

  2.   

    db2jcc.jar
    db2jcc_license_cu.jar
    用这两个jar 包
      

  3.   

    jdbc:db2://localhost/50000:testdbtomcat上应该属于远程连接......
      

  4.   

    如果还不行,请换个驱动包,有些驱动包C/S下没问题,但和HIBERNATE一起集成的时候会出现问题..
      

  5.   

    回楼上的 我没有引入这个JAR包啊
      

  6.   

    回楼主,我的意思是如果删除了asm-2.2.3.jar或是在项目中没有这个包。那应该是JDBC驱动包有问题,你到网站上重新下个版本高的JDBC驱动包看看...
      

  7.   

    小望,你是说去IBM下载一个高版本的JDBC for DB2 的驱动吗?
      

  8.   

    呵呵  我都快被这个DB2搞疯了,折腾两天了已经  百度 Google快翻烂了:(
      

  9.   

    问题好像不是出在连接的部分  我删除  sessionFactory 部分的配置文件 就可以顺利启动了
    晕啊  难道是 Spring的问题?
      

  10.   

    jdbc.url=jdbc:db2://localhost:端口号/testdb
      

  11.   

    我是用的 COM.ibm.db2.jdbc.app.DB2Driver  连接2啊  不能这样写url的
    不过用连接4 我也试过  也是不行
    报错信息是:
    23:23:53,625  WARN JDBCExceptionReporter:100 - SQL Error: 0, SQLState: null
    23:23:53,640 ERROR JDBCExceptionReporter:101 - Cannot create PoolableConnectionFactory (Expired JDBC driver.  IBM DB2 JDBC Universal Driver Architecture 2.3.18 Test Build expired on Thu Dec 30 00:00:00 CST 2004)
    23:23:53,640  WARN SettingsFactory:133 - Could not obtain connection to query metadata
      

  12.   

    没用过DB2,不知道DB2的JDBC怎么写,要不你可以下个mysql试试.要么你就写一个类,试试你写的JDBC对不对
      

  13.   

    恩 在 junit里面通过了连接,问题就是出在建立 sessionFactory  这里,不知道是这样的配置方法不对 还是Spring的这个包有问题
    直接转到其他的数据库,mysql mssql 我都试过,都是通过的,就是DB2不行!