[org.springframework.web.context.ContextLoader]-[ERROR] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionfactory_gsys_r_0' defined in ServletContext resource [/WEB-INF/classes/config/spring/spring-datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not determine type for: java.util.String, at table: topics, for columns: [org.hibernate.mapping.Column(top_main_flash)]
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)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)是sessionfactory_gsys_r_0这个对象注入失败吗?
org.hibernate.mapping.Column(top_main_flash)是这个参数的问题吗?还是其他什么问题

解决方案 »

  1.   

    如果不是jar包的问题的话,就应该是监听还有插件的事,你是怎么配置spring的啊?
      

  2.   

    spring-datasource.xml文件配置
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <list>
    <value>classpath*:config/init.properties</value>
    </list>
    </property>
    </bean>



    <!-- 使用jotm配置多数据源分布式事务管理的数据源 -->
    <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"/>
    <!--XAPool配置,内部包含了一XA数据源, 支持JTA事务的数据源,必须封装成XAPool-->  
    <bean id="datasource_gweb_r_0" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gdb_r_0}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gdb_r_0}"/>
    <property name="password" value="${datasource.password_gdb_r_0}"/>
    </bean> <bean id="datasource_gweb_r_1" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gdb_r_1}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gdb_r_1}"/>
    <property name="password" value="${datasource.password_gdb_r_1}"/>
    </bean>

    <bean id="datasource_gweb_w" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gdb_w}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gdb_w}"/>
    <property name="password" value="${datasource.password_gdb_w}"/>
    </bean><!-- sys库 -->
    <bean id="datasource_gsys_r_0" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gsys_r_0}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gsys_r_0}"/>
    <property name="password" value="${datasource.password_gsys_r_0}"/>
    </bean> <bean id="datasource_gsys_r_1" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gsys_r_1}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gsys_r_0}"/>
    <property name="password" value="${datasource.password_gsys_r_1}"/>
    </bean>

    <bean id="datasource_gsys_w" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource">
        <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
          <property name="transactionManager" ref="jotm"/>
          <property name="driverName" value="${datasource.driverClassName}"/>
          <property name="url" value="${datasource.url_gsys_w}"/>
        </bean>
    </property>
    <property name="user" value="${datasource.username_gsys_w}"/>
    <property name="password" value="${datasource.password_gsys_w}"/>
    </bean>

    <!--Hibernate SessionFatory-->
    <bean id="defaultSessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" lazy-init="default" autowire="default" dependency-check="default">
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>   
    <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>   
    <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>    
    <prop key="hibernate.autoReconnect">${hibernate.autoReconnect}</prop>
    <!-- prop key="hibernate.connection.autocommit ">false</prop-->
    </props>
    </property>
    </bean>

    <bean id="sessionfactory_gsys" parent="defaultSessionFactory" abstract="true">
    <property name="mappingResources">
    <!-- spring-orm中配置映射 -->
       <ref bean="maping_gsys" /> 
    </property>
    </bean>

    <bean id="sessionfactory_gweb" parent="defaultSessionFactory" abstract="true">
    <property name="mappingResources">
    <!-- spring-orm中配置映射 -->
       <ref bean="maping_gweb" /> 
    </property>
    </bean>

    <!--************************实际的sessionfactory************************-->
    <bean id="sessionfactory_gsys_r_0" parent="sessionfactory_gsys">
    <property name="dataSource">
    <ref local="datasource_gsys_r_0" />
    </property>
    </bean> <bean id="sessionfactory_gsys_r_1" parent="sessionfactory_gsys">
    <property name="dataSource">
    <ref local="datasource_gsys_r_1" />
    </property>
    </bean> <bean id="sessionfactory_gsys_w" parent="sessionfactory_gsys">
    <property name="dataSource">
    <ref local="datasource_gsys_w" />
    </property>
    </bean>

    <bean id="sessionfactory_gweb_r_0" parent="sessionfactory_gweb">
    <property name="dataSource">
    <ref local="datasource_gweb_r_0" />
    </property>
    </bean> <bean id="sessionfactory_gweb_r_1" parent="sessionfactory_gweb">
    <property name="dataSource">
    <ref local="datasource_gweb_r_1" />
    </property>
    </bean> <bean id="sessionfactory_gweb_w" parent="sessionfactory_gweb">
    <property name="dataSource">
    <ref local="datasource_gweb_w" />
    </property>
    </bean>

    <!--************************把 session factory 注入到Hibernate末班类*********************-->

    <bean id="templateGsysRead_0"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gsys_r_0" />
    </property>
    </bean> <bean id="templateGsysRead_1"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gsys_r_1" />
    </property>
    </bean>
    <bean id="templateGsysWrite"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gsys_w" />
    </property>
    </bean>
    <bean id="templateGsysReadMap" class="java.util.HashMap" >
    <constructor-arg>
    <map>
           <entry key="read0" value-ref="templateGsysRead_0"/>
           <entry key="read1" value-ref="templateGsysRead_1"/>
           </map>
    </constructor-arg>
    </bean>


    <bean id="templateGwebRead_0"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gweb_r_0" />
    </property>
    </bean> <bean id="templateGwebRead_1"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gweb_r_1" />
    </property>
    </bean>
    <bean id="templateGwebWrite"
    class="com.jd.common.persistent.dao.impl.HibernateEntityTemplate">
    <property name="sessionFactory">
    <ref local="sessionfactory_gweb_w" />
    </property>
    </bean>
    <bean id="templateGwebReadMap" class="java.util.HashMap" >
    <constructor-arg>
    <map>
           <entry key="read0" value-ref="templateGwebRead_0"/>
           <entry key="read1" value-ref="templateGwebRead_1"/>
           </map>
    </constructor-arg>
    </bean>    
    </beans>
      

  3.   

    init的资源文件datasource.type=mysql
    datasource.driverClassName=com.mysql.jdbc.Driverdatasource.poolMaxSize=100
    datasource.poolMinSize=30datasource.url_gdb_r_0=jdbc:mysql://localhost:3306/jd_db?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gdb_r_0=root
    datasource.password_gdb_r_0=datasource.url_gdb_r_1=jdbc:mysql://localhost:3306/jd_db?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gdb_r_1=root
    datasource.password_gdb_r_1=datasource.url_gdb_w=jdbc:mysql://localhost:3306/jd_db?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gdb_w=root
    datasource.password_gdb_w=###
    datasource.url_gsys_r_0=jdbc:mysql://localhost:3306/jd_sys?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gsys_r_0=root
    datasource.password_gsys_r_0=datasource.url_gsys_r_1=jdbc:mysql://localhost:3306/jd_sys?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gsys_r_1=root
    datasource.password_gsys_r_1=datasource.url_gsys_w=jdbc:mysql://localhost:3306/jd_sys?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
    datasource.username_gsys_w=root
    datasource.password_gsys_w=
    datasource.datasource=java:comp/env/jdbc/portal
    hibernate.dialect=com.jd.common.persistent.dialect.MySQLInnoDBDialectsdatasource.maxActive=10
    datasource.maxIdle=2
    datasource.maxWait=120000
    datasource.whenExhaustedAction=1
    datasource.validationQuery=select 1 from dual
    datasource.testOnBorrow=true
    datasource.testOnReturn=falsec3p0.acquireIncrement=1
    c3p0.initialPoolSize=3
    c3p0.idleConnectionTestPeriod=900
    c3p0.minPoolSize=2
    c3p0.maxStatements=100
    c3p0.numHelperThreads=10
    c3p0.maxIdleTime=600c3p0_w.maxPoolSize=10
    c3p0_r.maxPoolSize=20
    c3p0.testConnectionOnCheckin=true
    c3p0.testConnectionOnCheckout=truehibernate.jdbc.batch_size=25
    hibernate.jdbc.fetch_size=50
    hibernate.show_sql=true
    hibernate.connection.release_mode=after_transaction
    hibernate.autoReconnect=true