ClassCastException: org.hibernate.impl.SessionImpl cannot be cast to engine.spi.SessionImplementor

kartikag01

on submitting form to UserController via POST addUser method is invoked but on its 2nd line

 userService.addEmployee(user);

a exception is occurred stacktrace is

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.ClassCastException: org.hibernate.impl.SessionImpl cannot be cast to org.hibernate.engine.spi.SessionImplementor org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

com.example.model.User@7544ae20 Feb 26, 2015 4:51:02 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet dispatcherServlet threw exception java.lang.ClassCastException: org.hibernate.impl.SessionImpl cannot be cast to org.hibernate.engine.spi.SessionImplementor at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:354) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy17.addEmployee(Unknown Source) at com.example.controler.UserController.addUser(UserController.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:744)

UserController

@Controller
@RequestMapping("/users")
public class UserController {

@Autowired
UserService userService;

@RequestMapping(method = RequestMethod.GET, params = "new")
public String addUser(Model model) {
    model.addAttribute(new User());
    return "users/edit";
}

@RequestMapping(method = RequestMethod.POST)
public String addUser(User user, BindingResult bindingResult) {
    System.out.println(user);
    userService.addEmployee(user);
    System.out.println(user);
    return "redirect:/users/" + user.getEmpName();
}
}

UserServiceImpl

@Service("employeeService")
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class UserServiceImpl implements UserService {

@Autowired
private UserDao userDao;

@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void addEmployee(User employee) {
    userDao.addEmployee(employee);
}

public List<User> listEmployeess() {
    return userDao.listEmployeess();
}

public User getEmployee(int empid) {
    return userDao.getEmployee(empid);
}

public void deleteEmployee(User employee) {
    userDao.deleteEmployee(employee);
}

}

Spring configuration file is

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
xmlns:tx="http://www.springframework.org/schema/tx">

<context:component-scan base-package="com.example" />

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

<mvc:resources mapping="/**" location="/resources/" />

<mvc:annotation-driven />

<context:property-placeholder location="classpath:resources/database.properties" />

<tx:annotation-driven transaction-manager="hibernateTransactionManager" />

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${database.driver}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.user}" />
    <property name="password" value="${database.password}" />
</bean>
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.example.model.User</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
        </props>
    </property>
</bean>

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

DAO

 @Repository
 public class UserDaoImpl implements UserDao {

private SessionFactory sessionFactory;

@Autowired
public UserDaoImpl(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
}

public void addEmployee(User employee) {
    sessionFactory.getCurrentSession().saveOrUpdate(employee);
}

@SuppressWarnings("unchecked")
public List<User> listEmployeess() {
    return (List<User>) sessionFactory.getCurrentSession()
            .createCriteria(User.class).list();
}

public User getEmployee(int empid) {
    return (User) sessionFactory.getCurrentSession().get(User.class, empid);
}

public void deleteEmployee(User employee) {
    sessionFactory
            .getCurrentSession()
            .createQuery(
                    "DELETE FROM Employee WHERE empid = "
                            + employee.getEmpId()).executeUpdate();
}

}

Model

@Entity
 @Table(name="User")
 public class User implements Serializable{

private static final long serialVersionUID = -723583058586873479L;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "empid")
private Integer empId;

@Column(name="empname")
private String empName;

@Column(name="empaddress")
private String empAddress;

@Column(name="salary")
private Long salary;

@Column(name="empAge")
private Integer empAge;

public Integer getEmpId() {
    return empId;
}

public void setEmpId(Integer empId) {
    this.empId = empId;
}

public String getEmpName() {
    return empName;
}

public void setEmpName(String empName) {
    this.empName = empName;
}

public String getEmpAddress() {
    return empAddress;
}

public void setEmpAddress(String empAddress) {
    this.empAddress = empAddress;
}

public Long getSalary() {
    return salary;
}

public void setSalary(Long salary) {
    this.salary = salary;
}

public Integer getEmpAge() {
    return empAge;
}

public void setEmpAge(Integer empAge) {
    this.empAge = empAge;
}

}

why this exception is coming. Please explain.

Thanks in advance.

kartikag01

Problem is of Spring configuration file in <bean id="sessionFactory"> it uses hibernate3 while <bean id="hibernateTransactionManager"uses hibernate4.

Changing to hibernate4 new Configuration file.

Spring configuration file is

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
xmlns:tx="http://www.springframework.org/schema/tx">

<context:component-scan base-package="com.example" />

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

<mvc:resources mapping="/**" location="/resources/" />

<mvc:annotation-driven />

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>/WEB-INF/properties/database.properties</value>
        </list>
    </property>
</bean>

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

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

    </property>
</bean>


<tx:annotation-driven transaction-manager="transactionManager" />

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

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

ClassCastException Proxy36 cannot be cast to SessionImplementor after Hibernate/Spring 4 upgrade

From Dev

Caused by: ...cannot be cast to org.hibernate.engine.jdbc.connections.spi.ConnectionProvider

From Dev

java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider in WebLogic

From Dev

java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider in WebLogic

From Dev

ClassCastException: org.springframework.orm.jpa.EntityManagerHolder cannot be cast to org.springframework.orm.hibernate5.SessionHolder

From Dev

Why am I getting HTTP Status 500 - Unknown entity: org.hibernate.impl.SessionImpl exception?

From Dev

NullPointerException in org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)

From Dev

ClassCastException Object cannot be cast to

From Dev

ClassCastException:String cannot be cast to

From Dev

Error with Hibernate:Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

From Dev

Hibernate and @JoinFormula: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

From Dev

Hibernate: org.hibernate.criterion.ProjectionList cannot be cast to org.hibernate.Criteria

From Dev

ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

From Dev

ClassCastException: org.apache.log4j.Logger cannot be cast to org.owasp.esapi.Logger

From Dev

ClassCastException: org.apache.log4j.Logger cannot be cast to org.owasp.esapi.Logger

From Dev

java.lang.ClassCastException: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement

From Dev

java.lang.ClassNotFoundException: org.hibernate.engine.transaction.spi.TransactionContext

From Dev

org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Function "WITHIN" not found; SQL statement

From Dev

java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Properties

From Dev

cannot be cast to org.springframework.orm.hibernate4.LocalSessionFactoryBean

From Dev

cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector

From Dev

why org.hibernate.dialect.PostgreSQLDialect cannot be cast to org.hibernate.dialect.Dialect?

From Dev

org.hibernate.mapping.UnionSubclass cannot be cast to org.hibernate.mapping.RootClass

From Dev

ClassCastException MyType cannot be cast to MyType?

From Dev

Mockito ClassCastException - A mock cannot be cast

From Dev

ClassCastException: NoClassDefFoundError cannot be cast to RuntimeException

From Dev

ClassCastException: MainActivity cannot be cast to Listener

From Dev

Activity cannot be cast to Interface (ClassCastException)

From Dev

Spigot | ClassCastException cannot Cast as chest

Related Related

  1. 1

    ClassCastException Proxy36 cannot be cast to SessionImplementor after Hibernate/Spring 4 upgrade

  2. 2

    Caused by: ...cannot be cast to org.hibernate.engine.jdbc.connections.spi.ConnectionProvider

  3. 3

    java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider in WebLogic

  4. 4

    java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider in WebLogic

  5. 5

    ClassCastException: org.springframework.orm.jpa.EntityManagerHolder cannot be cast to org.springframework.orm.hibernate5.SessionHolder

  6. 6

    Why am I getting HTTP Status 500 - Unknown entity: org.hibernate.impl.SessionImpl exception?

  7. 7

    NullPointerException in org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)

  8. 8

    ClassCastException Object cannot be cast to

  9. 9

    ClassCastException:String cannot be cast to

  10. 10

    Error with Hibernate:Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

  11. 11

    Hibernate and @JoinFormula: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

  12. 12

    Hibernate: org.hibernate.criterion.ProjectionList cannot be cast to org.hibernate.Criteria

  13. 13

    ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

  14. 14

    ClassCastException: org.apache.log4j.Logger cannot be cast to org.owasp.esapi.Logger

  15. 15

    ClassCastException: org.apache.log4j.Logger cannot be cast to org.owasp.esapi.Logger

  16. 16

    java.lang.ClassCastException: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement

  17. 17

    java.lang.ClassNotFoundException: org.hibernate.engine.transaction.spi.TransactionContext

  18. 18

    org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Function "WITHIN" not found; SQL statement

  19. 19

    java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Properties

  20. 20

    cannot be cast to org.springframework.orm.hibernate4.LocalSessionFactoryBean

  21. 21

    cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector

  22. 22

    why org.hibernate.dialect.PostgreSQLDialect cannot be cast to org.hibernate.dialect.Dialect?

  23. 23

    org.hibernate.mapping.UnionSubclass cannot be cast to org.hibernate.mapping.RootClass

  24. 24

    ClassCastException MyType cannot be cast to MyType?

  25. 25

    Mockito ClassCastException - A mock cannot be cast

  26. 26

    ClassCastException: NoClassDefFoundError cannot be cast to RuntimeException

  27. 27

    ClassCastException: MainActivity cannot be cast to Listener

  28. 28

    Activity cannot be cast to Interface (ClassCastException)

  29. 29

    Spigot | ClassCastException cannot Cast as chest

HotTag

Archive