用Spring解决延迟加载的问题:”failed to lazily initialize a collection of role” - weijiguang/OA GitHub Wiki

作者:guloulou 发布:2011-03-07 01:33 分类:巴巴运动网, 环境搭建 阅读:1742 views 抢沙发
最近整理年前的笔记,发现当时困扰了许久的”failed to lazily initialize a collection of role”的问题。是关于JPA延迟加载的。导致错误的原因如下: @OneToMany(cascade = {CascadeType.REFRESH, CascadeType.REMOVE}, mappedBy = “parent”) 据说,默认是延迟加载的。 当时谷歌到一篇帖子,说了导致此错误的原因,但因为采用的框架不同,并没有找到对应的解决方法,帖子地址如下: 让Spring帮助你在MVC层解决JPA的缓迟加载问题:http://www.uml.org.cn/j2ee/200811142.asp 并不清楚如何在Spring中设置。后来不得不采用非延迟加载的方式声明,先跳过此错误: @OneToMany(cascade = {CascadeType.REFRESH, CascadeType.REMOVE}, mappedBy = “parent”, fetch = FetchType.EAGER) 但这并不是我想要的结果。后来晚上有空了,详细用google搜索了互联网,终于找到些处理问题的办法,帖子地址: LazyInitializationException despite of OpenEntityManagerInViewFilter:http://forum.springsource.org/showthread.php?t=28935 这个帖子碰上的错误和我碰上的是同一个问题,后面的跟贴有如下解决方案,在web.xml中配置过滤器: Spring OpenEntityManagerInViewFilter org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter

Spring OpenEntityManagerInViewFilter /* 我想这就是我第一搜索到的帖子说的,让Spring在mvc层给解决JPA延迟加载的问题对应的Spring的解决方法。 搜索了一下这个Spring OpenEntityManagerInViewFilter过滤器,官方的文档中有如下描述:来自,http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/orm/jpa/support/OpenEntityManagerInViewFilter.html Servlet 2.3 Filter that binds a JPA EntityManager to the thread for the entire processing of the request. Intended for the “Open EntityManager in View” pattern, i.e. to allow for lazy loading in web views despite the original transactions already being completed. This filter makes JPA EntityManagers available via the current thread, which will be autodetected by transaction managers. It is suitable for service layer transactions via JpaTransactionManager or JtaTransactionManager as well as for non-transactional read-only execution. Looks up the EntityManagerFactory in Spring’s root web application context. Supports a “entityManagerFactoryBeanName” filter init-param in web.xml; the default bean name is “entityManagerFactory”. Looks up the EntityManagerFactory on each request, to avoid initialization order issues (when using ContextLoaderServlet, the root application context will get initialized after this filter). 差不多解释了为啥有这个过滤器的存在。我在自己的web.xml中给出了详细的配置和注释,如下: web.xml contextConfigLocation classpath:beans.xml org.springframework.web.context.ContextLoaderListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter –> jpaFilter org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter jpaFilter /* struts-prepare org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter sitemesh com.opensymphony.sitemesh.webapp.SiteMeshFilter struts-execute org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter struts-prepare /* sitemesh /* REQUEST FORWARD INCLUDE struts-execute /*
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
另,附上完整的报错信息,供大家参考: truts Problem Report Struts has detected an unhandled exception: Messages: 1.failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed 2.org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed 3.org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed

File: org/hibernate/collection/AbstractPersistentCollection.java Line number: 383 ——————————————————————————– Stacktraces org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:250) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.write(JSONWriter.java:98) org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112) org.apache.struts2.json.JSONResult.execute(JSONResult.java:198) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:88) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:82) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) com.sun.grizzly.ContextTask.run(ContextTask.java:69) com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) java.lang.Thread.run(Thread.java:619) org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:250) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.array(JSONWriter.java:425) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:154) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.write(JSONWriter.java:98) org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112) org.apache.struts2.json.JSONResult.execute(JSONResult.java:198) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:88) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:82) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) com.sun.grizzly.ContextTask.run(ContextTask.java:69) com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) java.lang.Thread.run(Thread.java:619) org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.itcast.bean.product.ProductType.childtypes, no session or session was closed org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383) org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375) org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:368) org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111) org.hibernate.collection.PersistentSet.equals(PersistentSet.java:429) java.util.Vector.indexOf(Vector.java:361) java.util.Vector.contains(Vector.java:320) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:113) org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.array(JSONWriter.java:425) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:154) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) org.apache.struts2.json.JSONWriter.write(JSONWriter.java:98) org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112) org.apache.struts2.json.JSONResult.execute(JSONResult.java:198) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:88) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:82) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) com.sun.grizzly.ContextTask.run(ContextTask.java:69) com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) java.lang.Thread.run(Thread.java:619) 最后呢,还是要自我批评下,像这类问题,解决了应该及时整理出来。不能因为代码里写了详尽的注释,就不再整理博文了。 本文固定链接: http://www.guloulou.com/?p=2075 | An input force! 该日志由 guloulou 于2011年03月07日发表在 巴巴运动网, 环境搭建 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。 原创文章转载请注明: 用Spring解决延迟加载的问题:”failed to lazily initialize a collection of role” | An input force! 关键字: failed to lazily initialize a collection of role, fetch = FetchType.LAZY, FetchType.EAGER, JPA, MVC, OneToMany, org.hibernate.LazyInitializationException, org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter, Servlet 2.3, Spring OpenEntityManagerInViewFilter, Spring2, 、@OneToOne, 延迟加载, 解决JPA延迟加载, 过滤器 【上一篇】weblogic10.3部署应用提示找不到log4j类错误的处理 【下一篇】另类乱码:Struts2标签输出的中文查看源码时为乱码 您可能还会对这些文章感兴趣! 为啥要应用EJB3,by:黎活明 Struts2+JPA分页整合例子以及Jquery的jgrid测 16-20从实体对象到业务管理bean的抽象和重载 整合Spring3.05和JPA(Hibernate3.6)环境 JPA(Hibernate实现)环境搭建和测试 26_传智播客Spring2.5视频教程_Spring集成的Hi 01_传智播客Spring2.5视频教程_全面阐释Spring及 用Spring解决延迟加载的问题:”failed to lazily initialize a collection of role”:等您坐沙发呢!

⚠️ **GitHub.com Fallback** ⚠️