今天尝试配置 spring3+ 和 hibernte4+ 加上 mysql 连接池的配置时候出现org.hibernate.HibernateException: No Session found for current thread的异常,我的dao是采用 getSessionFactory().openSession()方式获取的 当我用cxf 调用的时候出现了上面的异常
;网上找了找资料发现 问题出的service层的 事物管理漏配置了;
下面贴
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="set*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="merge*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="do*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="productServiceMethods"
<span style="color:#FF0000;">expression="execution(* com.xxx.business..*.*(..))" /></span>
<aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods" />
</aop:config>
加上就没事了(
<span style="color:#FF0000;">expression="execution(* com.xxx.business..*.*(..))" /></span>
)是你的事物的包的路径