No se puede establecer una clase CurrentSessionContext personalizada en Spring Session Factory

Estoy tratando de implementar un patrón de sesión por conversación en una aplicación web JSF2-Spring-Hibernate, así que necesito mi AnnotationSessionFactoryBean para construir una Hibernate SessionFactory con una clase personalizada CurrentSessionContext.

He estado recibiendo este registro de errores:

org.springframework.dao.DataAccessResourceFailureException: Could not obtain Hibernate-managed Session for Spring-managed transaction; nested exception is org.hibernate.HibernateException: No CurrentSessionContext configured!

Aquí está mi configuración xml para todo el contexto de datos utilizado.

<?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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:util="http://www.springframework.org/schema/util"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-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-3.0.xsd">

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${datasource.driverClassName}" />
        <property name="url" value="${datasource.url}" />
        <property name="username" value="${datasource.username}" />
        <property name="password" value="${datasource.password}" />
        <property name="initialSize" value="${datasource.poolInitialSize}" />
    </bean>

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${org.hibernate.dialect.dialectmysqlInno}</prop>
                <prop key="hibernate.hbm2ddl.auto">${org.hibernate.ddl.mode}</prop>
                <prop key="hibernate.search.default.directory_provider">${org.hibernate.search.directoryprovidr}</prop>
                <prop key="hibernate.current_session_context_class">
                    mx.gob.jgtjo.apps.schedule.web.conversation.ConversationalCurrentSessionContext
                </prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateManagedSession" value="true" />
    </bean>

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

    <context:component-scan base-package="mx.gob.jgtjo.apps.schedule.dao.hibernate" />

</beans>

Además, aquí está mi hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="jgtjoSessionFactory">
        <!--Entity -->
        <mapping class="mx.gob.jgtjo.apps.schedule.model.AudienciaOral" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.CausaPenal" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.DefensorPenal" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.Delito" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.EventoAudiencia" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.Juez" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.MinisterioPublico" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.ParteMaterial" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.Sala" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.TipoAudiencia" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.User" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.Rol" />
        <mapping class="mx.gob.jgtjo.apps.schedule.model.DelitoConfigurado" />
    </session-factory>
</hibernate-configuration>

Como puede ver, nada complicado con hibernate xml.

¿Por qué sigo recibiendo esta excepción?

java.lang.NoSuchMethodException: mx.gob.jgtjo.apps.schedule.web.conversation.ConversationalCurrentSessionContext.<init>(org.hibernate.engine.SessionFactoryImplementor)

Parece que hibernate busca un constructor en mi clase que tenga un SessionFactory como argumento.

Respuesta 1

Intenté hacer un programa que muestre una imagen durante 3 segundos y luego cambiarlo, pero en lugar de mostrar la primera imagen, espere y luego muestre la segunda imagen, espere, muestre la primera imagen y luego muestre ...

Tengo una aplicación de Android que implica iniciar sesión en la aplicación y realiza muchas operaciones CRUD. Cuando el usuario inicia sesión por primera vez, lo registra rápidamente si hay datos disponibles para ese usuario que ...

Bien, este problema me ha estado rompiendo el cerebro todo el día. El problema: actualmente estoy recibiendo datos de tick de stock a una velocidad extremadamente alta a través de multidifusión. Ya he analizado estos datos ...

Estoy ejecutando mi proyecto en NetBeans pero no puedo ejecutar el archivo .jar con éxito. 1) Estaba desarrollando mi proyecto usando la biblioteca de clases Java, y luego descubrí que hay algún problema en manifiesto ...