我正在为我的代码获得异常,这些代码工作正常。一个动作方法被调用但是,我在方法调用完成后才得到这个异常。
我尝试了网上提供的所有选项,但似乎没有什么能帮助我。
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;
}
}
答案 0 :(得分:4)
当您在对象之间存在关系时会发生惰性初始化异常,例如,(一对多)客户端有很多汽车。 那么,发生的是,您进行查询,获取客户列表,然后关闭会话。在此之后,如果您尝试访问客户端对象内的汽车集合(未加载),您将获得异常。你没有发布你的代码......这会有所帮助。
编辑: 这正是你的例外所说的
未能懒惰地初始化角色集合: com.mypersonal.model.User.broadband,没有关闭会话或会话
答案 1 :(得分:1)
您应该进行急切的提取
public Set<UserBroadband> getBroadband()
@OneToMany( fetch = FetchType.EAGER
或在会话结束前进行JSON序列化。
在会话关闭后序列化实体对象时,无法在该对象中获取延迟集合。
答案 2 :(得分:1)
需要问的第一个问题是他们是否需要收藏品。如果他们需要收藏品,那么最好将其设置为EAGER加载。
如果在序列化过程发生之前不需要集合,请将所有集合设置为null。
我通过将所有集合设置为null来完成我的工作。
答案 3 :(得分:0)
您需要急切地在用户中加载“宽带”属性。应该很容易修复。默认情况下,Hibernate会懒惰地加载集合,你只需要在注释中添加fetch = FetchType.EAGER,或者在xml中做类似的事情。
另一种选择是在尚未与会话分离的情况下调用宽带属性。为此,您需要知道您的交易结束的时间,您的会话将关闭以执行此操作。然后Hibernate将填充该字段而不会抛出错误,因为它仍然可以访问数据库。
了解Hibernate出于性能原因这样做。如果您在一个查询中获取所有内容,则最终可能会获取整个数据库(披萨效果)。
答案 4 :(得分:0)
重复以下回答的问题:
您可以使用HibernateFullPlugin或使用拦截器实现的solution(与HibernateFullPlugin相同但更简单)。