我有这个jsf应用程序我需要维护并继续开发,我不断得到org.hibernate.AssertionFailure:应用程序的不同部分中的null标识符异常,有时我只在生产中获得它而不是在我的本地环境中,我一直在寻找几个星期但没有运气的解决方案,这是一个非常普遍的例外,这就是为什么我无法弄清楚是什么原因造成的。
我认为hibernate会话已损坏,但我不知道为什么并且不知道要阻止它。如何避免抛出此异常?
抛出异常的方法之一。
public List<InvoiceFacade> getDealerInvoiceLines(Calendar date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Date to be used: " + sdf.format(date.getTime()));
List<InvoiceFacade> invoiceLines = new ArrayList<InvoiceFacade>();
String query = "select * from claimparts cp inner join part p on(p.partid = cp.partid) inner join claims c on(c.claimid = cp.claimid)"
+ "inner join invoice i on(i.claimid = c.claimid and i.invoicetypeid = 2) inner join insurancecompany ic on (ic.insurancecompanyid = c.insurancecompanyid)"
+ "where c.statusid = 8 and CAST (i.paymentdate AS Date) = ? order by ic.insurancecompanyname";
Query q = em.createNativeQuery(query, "InvoiceLines");
try {
q.setParameter(1, sdf.parse(sdf.format(date.getTime())));
} catch (ParseException e) {
}
List<Object[]> results = q.getResultList();
for (Object obj : results) {
Object[] line = (Object[]) obj;
InvoiceFacade facade = new InvoiceFacade((Part) line[0],
(Claim) line[1], (Invoice) line[2], (ClaimParts) line[3]);
facade.setAdminFee(getAdminFee(facade.getClaimParts()));
invoiceLines.add(facade);
}
return invoiceLines;
}
10:51:18,612 ERROR [org.hibernate.AssertionFailure](http - 10.0.1.166-8080-31)HHH000099:发生断言失败(这可能表示Hibernate中存在错误,但更可能是因为不安全使用会话):org.hibernate.AssertionFailure:null标识符 10:51:18,620 ERROR [org.jboss.ejb3.invocation](http - 10.0.1.166-8080-31)JBAS014134:对于方法public java.util.List com.yannitech.nag.claims,组件DealerListingEJB上的EJB调用失败.ejbs.DealerListingEJB.getListings(java.util.Calendar):javax.ejb.EJBException:org.hibernate.AssertionFailure:null identifier at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 在org.jboss.as.ee.component.ViewService $ View.invoke(ViewService.java:165)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.as.ee.component.ViewDescription $ 1.processInvocation(ViewDescription.java:173)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 在org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] at com.yannitech.nag.claims.ejbs.DealerListingEJB $$$ view388.getListings(Unknown Source)[claims-ejb.jar:] 在com.yannitech.nag.claims.controllers.ListingController.loadListingAll(ListingController.java:290) 在com.yannitech.nag.claims.controllers.ListingController.loadListing(ListingController.java:266) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[rt.jar:1.6.0_38] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[rt.jar:1.6.0_38] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[rt.jar:1.6.0_38] 在java.lang.reflect.Method.invoke(Method.java:597)[rt.jar:1.6.0_38] 在org.apache.el.parser.AstValue.invoke(AstValue.java:262) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) 在org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 在javax.faces.component.UICommand.broadcast(UICommand.java:315) 在javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) 在javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 在javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 在org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 在com.yannitech.nag.claims.filters.AuthFilter.doFilter(AuthFilter.java:51) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 在org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 在com.yannitech.nag.claims.filters.AuthFilter.doFilter(AuthFilter.java:51) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 在org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)[jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:671) 在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:930) 在java.lang.Thread.run(Thread.java:662)[rt.jar:1.6.0_38] 引起:org.hibernate.AssertionFailure:null标识符