keshav kishor
keshav kishor

Reputation: 3

Migrating Spring 3 to Spring 4 and upgrading to Hibernate 4

While upgrading spring 3 to Spring 4.2.4.RELEASE and Hibernate 4.0.1.Final, following compilation error are coming:

XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageSource': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:

Could not autowire field: private javax.servlet.http.HttpServletRequest com.citi.cmtglobal.controllers.DatabaseDrivenMessageSource.request; nested exception is

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.annotation.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [applicationContext.xml];

nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.annotation.LocalSessionFactoryBean ContextLoader - Context initialization failed

POM.XML

<properties>
        <hibernate.version>4.2.21.Final</hibernate.version>
        <hsqldb.connector.version>2.3.1</hsqldb.connector.version>
        <spring.version>4.2.4.RELEASE</spring.version>
    </properties>
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</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-validator</artifactId>
            <version>4.2.0.Final</version>
        </dependency>        
        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.1.Final</version>
            <classifier>tests</classifier>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>      
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.0.1.Final</version>
        </dependency>       
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.1.0.CR2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
        </dependency>

SPRING-CONTEXT:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.annotation.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="hibernateProperties">
          <props>        
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>          
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
           </props>
        </property>
        <property name="packagesToScan" value="com.kk"></property>
    </bean>

Upvotes: 0

Views: 3040

Answers (1)

isah
isah

Reputation: 5351

LocalSessionFactoryBean's package is wrong. It should be:

org.springframework.orm.hibernate4.LocalSessionFactoryBean

Upvotes: 1

Related Questions