2015-06-04 46 views
1

當我試圖創建org.springframework.orm.hibernate4.HibernateTransactionManager豆,我得到org.springframework.beans.factory.BeanCreationException錯誤而產生豆org.springframework.orm.hibernate4.HibernateTransactionManager

我「M使用:

  • 休眠4.0.1.Final
  • 春3.2.2.RELEASE
  • 春天工具套件,版本:3.6.4.RELEASE,版本ID:201503100339,平臺:Eclipse的月神SR1 (4.4.2)
  • JDK 1.7
  • 的Tomcat 8.0服務器

這是daos.xml文件,其中我配置Hibernate的daos和SessionFactory的:

<?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-3.1.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 


    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="org.postgresql.Driver" /> 
     <property name="url" value="${jdbc.url}" /> 
     <property name="username" value="${jdbc.username}" /> 
     <property name="password" value="${jdbc.password}" /> 
    </bean> 

    <bean id="txManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <tx:advice id="txAdvice" transaction-manager="txManager"> 
     <tx:attributes> 
      <tx:method name="get*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="load*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="reload*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="*" rollback-for="Throwable" /> 
     </tx:attributes> 
    </tx:advice> 


    <aop:config> 
     <aop:pointcut id="transactionalMethods" 
      expression="execution(* com.walook.saico.servicios..*ServiceImpl.*(..))" /> 
     <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionalMethods" /> 
    </aop:config> 

    <bean id="abstractDao" abstract="true" 
     class="com.myapp.persistence.daos.AbstractHibernateDao"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <bean id="comunMappings" class="java.util.ArrayList"> 
     <constructor-arg> 
      <list> 
       <value>/com/myapp/persistence/mappings/User.hbm.xml</value> 
      </list> 
     </constructor-arg> 
    </bean> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <!-- <property name="hibernateProperties" ref="hibernateProperties"/> --> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.format_sql">false</prop> 
       <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
       <prop key="hibernate.current_session_context_class">thread</prop> 
       <prop key="hibernate.query.substitutions">true='T',false='F'</prop> 
       <prop key="hibernate.connection.autocommit">false</prop> 
      </props> 
     </property> 
     <constructor-arg> 
      <array> 
       <ref bean="comunMappings" /> 
      </array> 
     </constructor-arg> 

    </bean> 

    <bean id="usuarioDao" class="com.myapp.persistence.daos.UserDaoImpl" 
     parent="abstractDao"></bean> 
</beans> 

這是行家依賴我的pom.xml配置。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com</groupId> 
    <artifactId>myapp</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>My App</name> 
    <url>http://maven.apache.org</url> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.0.2.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjtools</artifactId> 
      <version>1.6.11</version> 
     </dependency> 

     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.6.11</version> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <version>2.2.3</version> 
     </dependency> 

     <dependency> 
      <groupId>oops.util.lib</groupId> 
      <artifactId>common</artifactId> 
      <version>0.9.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.modelmapper</groupId> 
      <artifactId>modelmapper</artifactId> 
      <version>0.6.5</version> 
     </dependency> 

     <dependency> 
      <groupId>org.mapdb</groupId> 
      <artifactId>mapdb</artifactId> 
      <version>1.0.5</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.xml.fastinfoset</groupId> 
      <artifactId>FastInfoset</artifactId> 
      <version>1.0.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.ws</groupId> 
      <artifactId>spring-ws-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>${spring.security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring.security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring.security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.ws</groupId> 
      <artifactId>spring-ws-core</artifactId> 
      <version>${spring.ws.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.velocity</groupId> 
      <artifactId>velocity</artifactId> 
      <version>1.7</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.5.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-ehcache</artifactId> 
      <version>${hibernate.version}</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>ehcache-core</artifactId> 
        <groupId>net.sf.ehcache</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
      <version>${ehcache.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>jpwgen</groupId> 
      <artifactId>jpwgen</artifactId> 
      <version>1.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>4.5.1</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sourceforge.javacsv</groupId> 
      <artifactId>javacsv</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>com.itextpdf</groupId> 
      <artifactId>itextpdf</artifactId> 
      <version>5.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-compress</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-validator</groupId> 
      <artifactId>commons-validator</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.4-1201-jdbc41</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>${poi.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>${poi.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml-schemas</artifactId> 
      <version>${poi.version}</version> 
     </dependency> 

    </dependencies> 

    <properties> 
     <spring.version>3.2.2.RELEASE</spring.version> 
     <spring.security.version>3.1.4.RELEASE</spring.security.version> 
     <spring.ws.version>2.1.4.RELEASE</spring.ws.version> 
     <spring.test.version>3.2.5.RELEASE</spring.test.version> 
     <poi.version>3.9</poi.version> 
     <c3p0.version>0.9.1.2</c3p0.version> 
     <hibernate.version>4.0.1.Final</hibernate.version> 
     <ehcache.version>2.7.0</ehcache.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>srvAppDev2</id> 
      <name>srvAppDev2-releases</name> 
      <url>http://localhost/:8081/artifactory/ext-release-local</url> 
     </repository> 
    </repositories> 
</project> 

這是在錯誤日誌跟蹤我得到:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in class path resource [com/myapp/config/daos.xml]: Initialization of bean failed; nested exception is java.lang.ExceptionInInitializerError 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:532) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ExceptionInInitializerError 
    at org.springframework.beans.TypeConverterDelegate.convertToTypedCollection(TypeConverterDelegate.java:502) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:199) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:93) 
    at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:61) 
    at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:45) 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:686) 
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1051) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:955) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedArray(BeanDefinitionValueResolver.java:341) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:150) 
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:629) 
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1051) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:955) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) 
    ... 20 more 
Caused by: java.lang.NullPointerException 
    at org.springframework.core.CollectionFactory.<clinit>(CollectionFactory.java:76) 
    ... 54 more 

什麼是錯我的xml配置文件?

+0

檢查您的依賴項,確保您沒有混合版本。另一個注意事項是不要混淆'hibernate.current_session_context_class',因爲這會破壞正確的tx集成,並且在注入數據源時'hibernate.connection'屬性是無用的。 –

+0

我編輯了我的問題,添加了pom.xml配置 – striketes

回答

1

我只是改變了我的STS爲:

  • 春天工具套件
  • 版本:3.6.4.RELEASE
  • 版本ID:201503100339
  • 平臺:Eclipse的月神SR1(4.4。2)

它工作。

我還改變了daos.xml配置,如下所示,只是爲了避免通過向sessionFactory添加mappingDirectoryLocations屬性來編寫每個hbm配置文件路由(myapp只是通過更改我的sts版本來工作,這個daos.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-3.1.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${jdbc.driverClassName}" /> 
     <property name="url" value="${jdbc.url}" /> 
     <property name="username" value="${jdbc.username}" /> 
     <property name="password" value="${jdbc.password}" /> 
    </bean> 

    <bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
     <property name="location" 
      value="${hibernate.properties.location}" /> 
    </bean> 

    <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <tx:advice id="txAdvice" transaction-manager="txManager"> 
     <tx:attributes> 
      <tx:method name="get*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="load*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="reload*" read-only="true" rollback-for="Throwable" /> 
      <tx:method name="*" rollback-for="Throwable" /> 
     </tx:attributes> 
    </tx:advice> 


    <aop:config> 
     <aop:pointcut id="transactionalMethods" expression="execution(* com.myapp.services..*ServiceImpl.*(..))" /> 
     <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionalMethods" /> 
    </aop:config> 

    <bean id="abstractDao" abstract="true" 
     class="com.myapp.persistence.daos.AbstractHibernateDao"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="hibernateProperties" ref="hibernateProperties"/> 
     <property name="mappingDirectoryLocations" value="${hibernate.mappings.location}" /> 
    </bean> 

    <bean id="usuarioDao" class="com.myapp.persistence.daos.UserDaoImpl" 
      parent="abstractDao"></bean> 
</beans> 
1
  1. LocalSessionFactoryBean沒有構造函數參數(見JavaDoc
  2. 您可以使用public void setMappingLocations(Resource... mappingLocations)(請參閱Javadocs到)
  3. 您可以按照Mkyong example,它很好地解釋

而且這是這樣,我配置我的會話工廠:

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 

     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
       <prop key="hibernate.show_sql">false</prop> 
      </props> 
     </property> 

     <property name="mappingLocations"> 
      <list> 
       <value>classpath:com/fenix/infrastructure/persistence/db/mapping/Usuario.hbm.xml 
       </value> 
       <value>classpath:com/fenix/infrastructure/persistence/db/mapping/ConfirmacionCorreo.hbm.xml 
       </value> 
       ... 
      </list> 
     </property> 

    </bean> 
+0

現在sessionFactory bean無法初始化,我也下載了Mkyong的例子和我有同樣的錯誤,sessionFactory無法初始化。 它可能是STS版本? – striketes

1

Fi首先我會檢查你的類路徑,看看你是否沒有與彈簧相關的罐子混合依賴。

然後,我將刪除java.util.ArrayList bean,並使用<util:list />或僅將其內聯在LocalSessionFactoryBean配置中。後一種情況是定義映射文件的最常見方式。接下來,LocalSessionFactoryBean不接受構造函數參數,以便bean定義已經錯誤。

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">false</prop> 
      <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
      <prop key="hibernate.query.substitutions">true='T',false='F'</prop> 
     </props> 
    </property> 
    <property name="mappingLocations"> 
     <list> 
      <value>classpath:/com/myapp/persistence/mappings/User.hbm.xml</value> 
     </list> 
    </property> 
</bean> 

我也去掉了hibernate.connection.*性質那些沒有做任何事情由於DataSource的注入。此外,hibernate.current_session_context_class已被刪除,因爲它已被Spring設置。混淆通常會破壞正確的事務管理。