java - jasper 报告中的 bucket 表达式值是什么?

标签 java jasper-reports dynamic-reports

我正在使用 dynamicReport(jasperreport 上的层)在 java 中创建报告。当我尝试创建交叉表报告时,出现异常提示 “桶表达式值不可比较且未指定比较器”那么桶表达式值到底是什么以及这个异常试图说明什么?

net.sf.jasperreports.engine.JRRuntimeException: Could not create bucketing service
  at net.sf.jasperreports.engine.fill.JRFillCrosstab.initBucketingService(JRFillCrosstab.java:556)
  at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customInitialize(JRFillCrosstab.java:799)
  at net.sf.jasperreports.engine.fill.JRFillElementDataset.initialize(JRFillElementDataset.java:141)
  at net.sf.jasperreports.engine.fill.JRCalculator.initializeDataset(JRCalculator.java:529)
  at net.sf.jasperreports.engine.fill.JRCalculator.initializeVariables(JRCalculator.java:295)
  at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
  at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)
  at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:932)
  at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
  at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)
  at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
  at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:849)
  at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperPrint(JasperReportBuilder.java:306)
  at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.export(JasperReportBuilder.java:597)
  at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toPdf(JasperReportBuilder.java:517)
  at com.isiran.rayten.rg.report.JasperBuilder.toPdf(JasperBuilder.java:248)
  at com.isiran.rayten.rg.report.builder.ReportBuilder.toPdf(ReportBuilder.java:260)
  at com.isiran.rayten.rg.web.view.report.ReportUIBean.showReport(ReportUIBean.java:295)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:329)
  at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:342)
  at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
  at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
  at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
  at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
  at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
  at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
  at javax.faces.component.UICommand.broadcast(UICommand.java:300)
  at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:795)
  at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1260)
  at org.springframework.faces.webflow.FlowLifecycle.invokePhase(FlowLifecycle.java:127)
  at org.springframework.faces.webflow.FlowLifecycle.execute(FlowLifecycle.java:70)
  at org.springframework.faces.webflow.JsfView.processUserEvent(JsfView.java:120)
  at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:226)
  at org.springframework.webflow.engine.ViewState.resume(ViewState.java:196)
  at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
  at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258)
  at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
  at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
  at org.springframework.faces.webflow.JsfFlowHandlerAdapter.handle(JsfFlowHandlerAdapter.java:48)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at com.isiran.rayten.runtime.web.filter.FlowTimerFilter.doFilter(FlowTimerFilter.java:54)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at com.isiran.rayten.web.web.filter.ExceptionFilter.doFilter(ExceptionFilter.java:37)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
  at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
  at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:58)
  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:95)
  at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:724)
Caused by: net.sf.jasperreports.engine.JRException: The bucket expression values are not comparable and no comparator specified.
  at net.sf.jasperreports.crosstabs.fill.calculation.BucketDefinition.<init>(BucketDefinition.java:109)
  at net.sf.jasperreports.crosstabs.fill.calculation.BucketDefinition.<init>(BucketDefinition.java:88)
  at net.sf.jasperreports.engine.fill.JRFillCrosstab.createServiceBucket(JRFillCrosstab.java:437)
  at net.sf.jasperreports.engine.fill.JRFillCrosstab.createService(JRFillCrosstab.java:394)
  at net.sf.jasperreports.engine.fill.JRFillCrosstab.initBucketingService(JRFillCrosstab.java:552)

最佳答案

请看这个http://www.tutorialspoint.com/jasper_reports/jasper_crosstabs.htm .它解释了什么是桶。 至于错误,您使用的是自定义数据类型吗?如果是,它必须实现 java.lang.Comparable。

关于java - jasper 报告中的 bucket 表达式值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068229/

相关文章:

java - 使用 java 从 MySQL 检索多个 Blob

java - 应该同步哪些代码块?

java - 在ireport中按日期对数据进行分组

java - jasperreports.properties 应该位于 Web 应用程序 war 的哪个文件夹?

java - 在 DynamicReport 中声明动态列

java - 在 Ubuntu 上使用 Java - 包冲突?

javascript - 如何将字符串转换为 React 组件

grails - 性能问题碧 Jade 报告和grails/groovy

java - 如何获取动态报表的页码?

java - JasperReportBuilder HTML 行高