Jump to content
Changes to the Jaspersoft community edition download ×

Could not create chart customizer instance. Works in iReport however


ruud.vanheugten

Recommended Posts

For a jasperreport that I've created in iReport I created a ChartCustomizer as follows:

public class BarChartBlackOutlineCustomizer extends JRAbstractChartCustomizer {    @Override    public void customize(JFreeChart jFreeChart, JRChart jasperChart) {        if(jasperChart.getChartType() == JRChart.CHART_TYPE_BAR) {            //Chart is a bar chart            BarRenderer renderer = (BarRenderer) jFreeChart.getCategoryPlot().getRenderer();            //Removes gray line around the bar            renderer.setDrawBarOutline(true);            renderer.setBaseOutlinePaint(Color.BLACK);            renderer.setBaseOutlineStroke(new BasicStroke(1f));        }    }}[/code]

In iReport I've added the jar to the classpath and added it to my chart as customizer. When I generate a preview in iReport no errors show up and the customisation of the chart works as expected. I'm also able to compile the report to a .jasper file.

In my Jetty-webserver I want to use the .jasper file to generate a Pdf file from a Xml file. However when I try to generate the Pdf file I get the following error

net.sf.jasperreports.engine.JRRuntimeException: Could not create chart customizer instance.    at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:299)    at net.sf.jasperreports.engine.fill.JRFillObjectFactory.visitChart(JRFillObjectFactory.java:702)    at net.sf.jasperreports.engine.base.JRBaseChart.visit(JRBaseChart.java:639)    at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:89)    at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:83)    at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:90)    at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:92)    at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:505)    at net.sf.jasperreports.engine.fill.JRFillSection.<init>(JRFillSection.java:74)    at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getSection(JRFillObjectFactory.java:481)    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:452)    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:82)    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:569)    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915)    at nl.cofely.framework.modules.reporting.ReportingService.getReportPrint(ReportingService.java:192)    at nl.cofely.framework.modules.reporting.ReportingService.getReportAsPdf(ReportingService.java:237)    at nl.cofely.framework.modules.reporting.ReportingService.getReportAsPdf(ReportingService.java:227)    at nl.cofely.datacenters.dcma.wicket.tabpopup.widgets.report.Reports$2.onClick(Reports.java:143)    at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:188)    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.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:260)    at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216)    at org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)    at org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)    at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:781)    at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)    at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255)    at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212)    at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283)    at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:185)    at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:241)    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)    at org.eclipse.jetty.server.Server.handle(Server.java:345)    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)    at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)    at java.lang.Thread.run(Thread.java:724)Caused by: java.lang.ClassNotFoundException: BarChartBlackOutlineCustomizer    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424)    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:270)    at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:175)    at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)    at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:296)    ... 62 more[/code]

So I guess there is a minor configuration issue but I can't seem to solve it. I tried adding the .jar file to my project, tried adding the .jar file to the web-inf folder and also tried adding the .jar file to the jetty-etc.zip file in the same folder as the .jasper. Help would be really appreciated.

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...