<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="open">
<property name="driverClassName">
<value>com.informix.jdbc.IfxDriver</value>
</property>
<property name="url">
<value>
jdbc:informix-sqli://sunny:1526/loan_hld:informixServer=ol_sunny;NEWLOACLE=en_us,zh_cn,zh_tw;NEWCODESET=GB2312-80,8859-1,819,Big5
</value>
</property>
<property name="username">
<value>informix</value>
</property>
<property name="password">
<value>informix</value>
</property>
</bean>

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.InformixDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--  OR mapping files. -->
<property name="mappingLocations">
<list>
<value>classpath*:com/git/credit/pojohbm/*.hbm.xml</value>
</list>
</property>
</bean> <!--通用数据库访问模板设置-->
<bean id="gitJdbcTemplate"
class="com.git.credit.common.GitJdbcTemplateImpl">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!--事务管理-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <!--CollectionBorrower组件配置-->
<bean id="collectionBorrower"
class="com.git.credit.collection.hldsql2000.CollectionBorrowerImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
<property name="gitJdbcTemplate">
<ref local="gitJdbcTemplate" />
</property>
</bean> <bean id="collectionBorrowerProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="collectionBorrower" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!--CollectionCredit组件配置-->
<bean id="collectionCredit"
class="com.git.credit.collection.hldsql2000.CollectionCreditImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
<property name="gitJdbcTemplate">
<ref local="gitJdbcTemplate" />
</property>
</bean> <bean id="collectionCreditProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="collectionCredit" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!--CollectionMain组件配置-->
<bean id="collectionMain"
class="com.git.credit.collection.hldsql2000.CollectionMainImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
<property name="gitJdbcTemplate">
<ref local="gitJdbcTemplate" />
</property> <property name="collectionBorrower">
<ref local="collectionBorrower" />
</property>
<property name="collectionCredit">
<ref local="collectionCredit" />
</property>
</bean> <bean id="collectionMainProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="collectionMain" />
</property>
<property name="transactionAttributes">
<props>
<prop key="">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!--文件生成组件配置-->
<bean id="produceMessage"
class="com.git.credit.producefile.ProduceMessageImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="produceMessageProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="produceMessage" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <bean id="produceFile"
class="com.git.credit.producefile.ProduceFileImpl">
<property name="produceMessage">
<ref local="produceMessageProxy" />
</property>
</bean> <!--错误文件管理组件配置-->
<bean id="reReportManager"
class="com.git.credit.rereport.ReReportManagerImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="reReportManagerProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="reReportManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="disposeRebuild">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>

解决方案 »

  1.   

    JDBCExceptionReporter - SQL Exception
    org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.informix.jdbc.IfxDriver' for connect URL '
    jdbc:informix-sqli://sunny:1526/loan_hld:informixServer=ol_sunny;NEWLOACLE=en_us,zh_cn,zh_tw;NEWCODESET=GB2312-80,8859-1,819,Big5
    '
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:798)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:738)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1024)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:270)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:89)
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:74)
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:65)
    at com.git.credit.uibgp.BeanManager.loadBean(BeanManager.java:26)
    at com.git.credit.ui.CiWindow.main(CiWindow.java:181)
    Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(Unknown Source)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
    ... 22 more
    声明:我的lib中已经包含了informix驱动
      

  2.   

    在eclipse中通过spring配置文件对org.apache.commons.dbcp.BasicDataSource进行注入:  <property name="url">
       <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=struts</value>
      </property>  <property name="url">
       <value>
        jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=struts
       </value>
      </property>以上两种对url的注入方法在运行时结果是不同的,后一种会出错:no suit driver 在eclipse中按ctrl+shift+f代码会被格式化成后一种形式,所以导致出错。这可能是spring的一个bug,但也可能是apache的,不过我觉得spring的可能性最大。
      

  3.   

    我使用hibernate连接informix的:
    配置文件如下:
    <property name="connection.driver_class">com.informix.jdbc.IfxDriver</property>
    <property name="connection.url">jdbc:informix-sqli://localhost:1526/rptdb:informixserver=sunlin_informix;NEWCODESET=GBK,8859-1,819</property> 
    <property name="dialect">com.common.InformixDialectHibernate</property>
    <property name="myeclipse.connection.profile">yjh1104</property>
    <property name="connection.username">informix</property>
    <property name="connection.password">informix</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.jdbc.fetch_size">50</property>
    <property name="hibernate.jdbc.batch_size">25</property>
      

  4.   

    我发现hibernate不能正确生成informix的sql语法。
    生成的sql中包括left outer join这在informix中是不合法的。
    不知道怎么解决
      

  5.   

    谢谢楼主啊 我也是eclipse中按ctrl+shift+f导致出错了 
      

  6.   

    <value> 
    jdbc:informix-sqli://sunny:1526/loan_hld:informixServer=ol_sunny;NEWLOACLE=en_us,zh_cn,zh_tw;NEWCODESET=GB2312-80,8859-1,819,Big5 
    </value> 
    连接字符串要和标签写到一行