Struts2,Hibernate , Spring中懒加载问题

永远的幸福 发布于 2013/07/29 19:59
阅读 929
收藏 0

web.xml中配置如下代码:

<!-- 懒加载 -->

<!-- 配置opensessioninview解决懒加载,本质一个过滤器. -->
<filter>
       <filter-name>OpenSessionInViewFilter</filter-name>
       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
       <filter-name>OpenSessionInViewFilter</filter-name>
       <url-pattern>/*</url-pattern>

</filter-mapping>

但是,还是给我报no Session

严重: Servlet.service() for servlet jsp threw exception
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.wen.entity.Usertype_$$_javassist_1.getTypeName(Usertype_$$_javassist_1.java)
at org.apache.jsp.top_jsp._jspService(top_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)


很郁闷,网上有人说是访问的不是同一个session,看了半天,没弄明白。求快速有效的方法解决。谢谢!

加载中
0
名字是什么能吃吗
名字是什么能吃吗
应该是懒加载前把session关闭了
0
王瑞平
王瑞平
lazy="false"
0
永远的幸福
永远的幸福
兄弟,你这个我知道,但是这样对服务器的压力大啊。建议你少用……
0
周老兽
周老兽
目测是你其他hibernate配置文件搞的
0
永远的幸福
永远的幸福
能说详细点么。。。。
0
永远的幸福
永远的幸福
我项目是ssh做的,Hibernate没有配置文件,Spring中使用了事物。。
0
龙影
龙影
唉 都是做烂了东西啊 还是轻量好 不用那么复杂。可以看看@Jfinal
紫电清霜
紫电清霜
顶:)
0
永远的幸福
永远的幸福

引用来自“丁非凡”的答案

应该是懒加载前把session关闭了
我的项目使用了框架了,我从一个页面跳到框架页面,所以这次请求就结束了。也就是session已经关闭了。然而我的框架也里面的子页面去访问了数据库,所以相当于第二次请求。也就是session不是之前的那个,问题已经解决了,你的答案和我的问题一样。
0
beckyxu
beckyxu

引用来自“永远的幸福”的评论

引用来自“丁非凡”的答案

应该是懒加载前把session关闭了
我的项目使用了框架了,我从一个页面跳到框架页面,所以这次请求就结束了。也就是session已经关闭了。然而我的框架也里面的子页面去访问了数据库,所以相当于第二次请求。也就是session不是之前的那个,问题已经解决了,你的答案和我的问题一样。
请问最后是怎么解决的,跪求!
返回顶部
顶部