2012-12-14 124 views
1

我正在为我的代码例外,是工作完全正常....操作方法是被称为但是,我得到这个异常的方法调用完成后立即...冬眠LazyInitializationException中

需要一些紧急援助。我尝试了www上的所有可用选项。但似乎没有什么能帮助我。

12/14 23:30:17 INFO er.SessionDetectionInterceptor - as dualauth is disabled. session interceptor doesnt validate 
12/14 23:30:22 ERROR te.LazyInitializationException - failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) 
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) 
    at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343) 
    at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) 
    at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:406) 
    at java.util.Vector.indexOf(Vector.java:361) 
    at java.util.Vector.contains(Vector.java:320) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:109) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.array(JSONWriter.java:441) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:150) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:94) 
    at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:115) 
    at org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:200) 
    at org.apache.struts2.json.JSONResult.execute(JSONResult.java:172) 
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266) 
    at com.apalya.filter.SessionDetectionInterceptor.intercept(SessionDetectionInterceptor.java:117) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.apalya.filter.UserDetectionInterceptor.intercept(UserDetectionInterceptor.java:53) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor.intercept(ParameterFilterInterceptor.java:135) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.CreateSessionInterceptor.intercept(CreateSessionInterceptor.java:93) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.apalya.filter.XSSFilter.doFilter(XSSFilter.java:29) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    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.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:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615) 
    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:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:662) 
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:94) 
    at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:115) 
    at org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:200) 
    at org.apache.struts2.json.JSONResult.execute(JSONResult.java:172) 
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266) 
    at com.apalya.filter.SessionDetectionInterceptor.intercept(SessionDetectionInterceptor.java:117) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.apalya.filter.UserDetectionInterceptor.intercept(UserDetectionInterceptor.java:53) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor.intercept(ParameterFilterInterceptor.java:135) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.interceptor.CreateSessionInterceptor.intercept(CreateSessionInterceptor.java:93) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.apalya.filter.XSSFilter.doFilter(XSSFilter.java:29) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    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.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:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615) 
    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:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.array(JSONWriter.java:441) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:150) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    ... 86 more 
Caused by: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    ... 93 more 
Caused by: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.apalya.model.User.broadband, no session or session was closed 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    ... 97 more 
Caused by: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.mypersonal.model.User.broadband, no session or session was closed 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230) 
    at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    ... 101 more 
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.mypersonal.model.User.broadband, no session or session was closed 
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) 
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) 
    at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343) 
    at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) 
    at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:406) 
    at java.util.Vector.indexOf(Vector.java:361) 
    at java.util.Vector.contains(Vector.java:320) 
    at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:109) 
    at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:352) 
    at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215) 
    ... 105 more 

我的模型类

@Entity 
@Table(name = "user") 
public class User implements Serializable { 

    private static final long serialVersionUID = 1L; 
    private Long id; 

    private Boolean approved; 
    private Boolean subscribed; 
    private Date createdOn; 

    private Set<UserBroadband> broadband; 
    private Set<UserBussinessModel> userBussinessModel; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 

    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 



    @Column(name = "approved") 
    public void setApproved(Boolean approved) { 
     this.approved = approved; 
    } 

    public Boolean getApproved() { 
     return approved; 
    } 

    @Column(name = "createdOn") 
    public void setCreatedOn(Date createdOn) { 
     this.createdOn = createdOn; 
    } 

    public Date getCreatedOn() { 
     return createdOn; 
    } 

    /*@OneToMany(targetEntity = com.apalya.model.UserBussinessModel.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "id") 
    @JsonIgnore*/ 
    @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "user" ) 
    @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) 
    @Basic(optional = false) 
    @Column(nullable = false ) 
    public Set<UserBussinessModel> getUserBussinessModel() { 
     return userBussinessModel; 
    } 

    public void setUserBussinessModel(Set<UserBussinessModel> userBussinessModel) { 
     this.userBussinessModel = userBussinessModel; 
    } 

    @Column(name = "company") 
    public String getCompany() { 
     return company; 
    } 

    public void setCompany(String company) { 
     this.company = company; 
    } 

    @Column(name = "status") 
    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    @Column(name = "subscribed") 
    public Boolean getSubscribed() { 
     return subscribed; 
    } 

    public void setSubscribed(Boolean subscribed) { 
     this.subscribed = subscribed; 
    } 

    @Column(name = "auto_provision") 
    public Boolean getAutoProvision() { 
     return autoProvision; 
    } 

    public void setAutoProvision(Boolean autoProvision) { 
     this.autoProvision = autoProvision; 
    } 

    /** 
    * @param fname the fname to set 
    */ 
    public void setFname(String fname) { 
     this.fname = fname; 
    } 

    /** 
    * @return the fname 
    */ 
    @Column(name = "first_name") 
    public String getFname() { 
     return fname; 
    } 

    /** 
    * @param lname the lname to set 
    */ 
    public void setLname(String lname) { 
     this.lname = lname; 
    } 

    /** 
    * @return the lname 
    */ 
    @Column(name = "last_name") 
    public String getLname() { 
     return lname; 
    } 

    /** 
    * @param lastLoggedOn the lastLoggedOn to set 
    */ 
    public void setLastLoggedOn(Date lastLoggedOn) { 
     this.lastLoggedOn = lastLoggedOn; 
    } 

    /** 
    * @return the lastLoggedOn 
    */ 
    public Date getLastLoggedOn() { 
     return lastLoggedOn; 
    } 

    @Column(name = "from_date") 
    public Date getFromDate() { 
     return fromDate; 
    } 

    public void setFromDate(Date fromDate) { 
     this.fromDate = fromDate; 
    } 
    @Column(name = "to_date") 
    public Date getToDate() { 
     return toDate; 
    } 

    public void setToDate(Date toDate) { 
     this.toDate = toDate; 
    } 
    /*@OneToMany(targetEntity = com.apalya.model.UserBroadband.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "id") 
    @JsonIgnore*/ 
    @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "userId" ) 
    @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) 
    @Basic(optional = false) 
    @Column(nullable = false ) 
    public Set<UserBroadband> getBroadband() { 
     return broadband; 
    } 

    public void setBroadband(Set<UserBroadband> broadband) { 
     this.broadband = broadband; 
    } 

} 
+1

你需要显示代码。 – Subin

+0

我已经添加了模型类,在那里我得到异常 – user1904829

回答

4

懒惰初始化,当你有beetween对象的关系,例如发生异常时,(一到多)客户端有很多汽车。 所以会发生的是,你做了一个查询,得到一个客户列表,然后你关闭会话。在此之后,如果您尝试访问客户端对象内的汽车集合(未加载),您将得到异常。你没有发布你的代码......这将有助于更多。

编辑: 和多数民众赞成正是你的异常告诉

未能懒洋洋地初始化角色的集合: com.mypersonal.model.User.broadband,没有会话或会话关闭

+0

我已经添加了模型类,在那里我得到了异常 – user1904829

0

您需要在用户中热切加载属性“宽带”。应该很容易解决。 Hibernate在默认情况下会延迟加载集合,你只需要在注释中添加fetch = FetchType.EAGER或者在xml中做类似的事情。

另一个选择是调用宽带属性,但它尚未从会话中分离出来。为此,您需要知道您的交易在哪里结束,您的会话已关闭,以便之前完成交易。然后Hibernate会填充该字段而不会抛出错误,因为它仍然可以访问数据库。

了解Hibernate是出于性能原因做这些事的。如果您在一个查询中获取所有内容,则最终可能会获取整个数据库(披萨效应)。

1

您应该做出预先抓取

public Set<UserBroadband> getBroadband()@OneToMany(fetch = FetchType.EAGER

或会话关闭之前做你的JSON序列化。

在会话关闭后序列化实体对象时,它无法在该对象中获取延迟集合。

+0

我试过FetchType.Eager,然后我的jvm内存不足。 你可以解释我第二个选项,我没有尝试过相同的 – user1904829

+0

这意味着你的设置真的很大,你应该重新考虑序列化它,因为你在评论中考虑@JsonIgnor它 – Subin

+0

有多个字段延迟初始化,除非您在会话中序列化,或更改其获取类型,否则这将失败。 – Robin

1

需要问的第一个问题是他们是否需要收藏。如果他们需要集合,那么最好将其设置为EAGER加载。

如果在序列化过程发生之前不需要集合,请将所有集合设置为null。

通过将所有集合设置为null,我得到了我的工作。