2013-04-22 49 views
0

时间生产时间,我们有下一个错误:Spring&Hibernate:无法绑定会话。

2013-04-18 20:47:50,199 http-0.0.0.0-8443-35 ERROR [Jersey Web Application]] [userId: 57916] Servlet.service() for servlet Jersey Web Application threw exception 
java.lang.IllegalStateException: Already value [[email protected]] for key [[email protected]] bound to thread [http-0.0.0.0-8443-35] 
    at org.springframework.transaction.support.TransactionSynchronizationManager.bindResource(TransactionSynchronizationManager.java:189)  

我们有针对新泽西州的REST类型的服务的每个请求公开会议Hibernate会话过滤器。

com.mycompany.SessionPerRequestHelper { 
    public static Session openSession() { 
     SessionFactory sessionFactory = getSessionFactory(); 

     Session sess = sessionFactory.openSession(); 
     sessThreadLocal.set(sess); 

     TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(sess)); 
     TransactionSynchronizationManager.initSynchronization(); 

     return sess; 
    } 
} 

休眠方面的配置:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation" value="classpath:com/transportexchangegroup/domain/hibernate.cfg.xml" /> 
     <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /> 
    </bean> 

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

和hibernate.cfg

<hibernate-configuration> 
    <session-factory> 
     <property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property> 
     <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 
     <property name="current_session_context_class">thread</property> 
    </session-factory> 
</hibernate-configuration> 

回答

相关问题