2012-12-14 172 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,我得到了我的工作。