当前位置: 代码迷 >> Java Web开发 >> spring使用注解方式实例化类之后 事务就失去了效果。
  详细解决方案

spring使用注解方式实例化类之后 事务就失去了效果。

热度:2642   发布时间:2016-04-10 23:10:42.0
spring使用注解方式实例化类之后 事务就失去了效果。。求助!!!!!!
没用 注解之前 用的是声明式 事务  用了后  会出现 no session  某些页面 标签拿不到值  提示  session  已关闭。。 
下面上 配置文件  
	<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean>

<!-- *******************************动态代理事务*********************************** -->
<!-- 配置事务 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

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


  <bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<!-- 配置事务属性 -->
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>


<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Dao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>


<!-- 自动扫描dao和service包(自动注入) -->
<context:component-scan base-package="com.syyx.officemanage" />



上面是 spring 配置文件


然后访问 需要操作数据库的标签页后 就出现 2013-12-26 17:20:49,655 ERROR [org.hibernate.LazyInitializationException] - could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:132)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:174)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at com.syyx.officemanage.common.entity.SysEmployee_$$_javassist_10.getName(SysEmployee_$$_javassist_10.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:891)
at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1454)
at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60)
at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:147)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17)
at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2317)
at ognl.ASTProperty.getValueBody(ASTProperty.java:114)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.ASTChain.getValueBody(ASTChain.java:141)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.Ognl.getValue(Ognl.java:494)
at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:255)
at com.opensymphony.xwork2.ognl.OgnlValueStack.getValue(OgnlValueStack.java:352)
at com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValue(OgnlValueStack.java:341)
at com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValueWhenExpressionIsNotNull(OgnlValueStack.java:317)
at com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:303)
at org.apache.struts2.components.Property.start(Property.java:159)
at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:53)
at org.apache.jsp.jsp.claim.claim_005fvoucher_005flist_jsp._jspx_meth_s_005fproperty_005f5(claim_005fvoucher_005flist_jsp.java:626)
at org.apache.jsp.jsp.claim.claim_005fvoucher_005flist_jsp._jspx_meth_s_005fiterator_005f0(claim_005fvoucher_005flist_jsp.java:486)
at org.apache.jsp.jsp.claim.claim_005fvoucher_005flist_jsp._jspx_meth_s_005fform_005f1(claim_005fvoucher_005flist_jsp.java:403)
at org.apache.jsp.jsp.claim.claim_005fvoucher_005flist_jsp._jspService(claim_005fvoucher_005flist_jsp.java:165)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)



没用注解之前没问题  都是在jsp加载完毕后才关闭 session  现在 没加载完就关闭了。

  相关解决方案