rucksman007 Posted January 29, 2013 Share Posted January 29, 2013 I made a report with iReport 5.0.1, and after I checked "Force SVG Shapes" in the PDF export options, the SVG shapes are rendered as they should when generating the report as PDF. BUT: When I deployed the report to the Jasperserver from within iReport, the Report is stopped being rendered with an error.The Expression I use in iReport (which works) is (for some reason the code here in this editor is converted into html, so I changed the brackets into round ones): (image) (reportElement uuid="6d70bf5f-9652-4df1-9715-16de7fdffd1e" x="0" y="0" width="78" height="33"/) (imageExpression class="net.sf.jasperreports.engine.JRRenderable")(![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("Z:\jaspersoft\reports\logo.svg"))]])(/imageExpression) (/image)On the server I changed the path to "repo:logo.svg" and uploaded the SVG via iReport into the resources folder. The error I get is: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("repo:logo_de.svg")) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:966) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:483) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:463) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:459) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2044) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:778) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:120) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:859) at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:821) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1622) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1005) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:881) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: net.sf.jasperreports.engine.JRException: Error loading byte data : repo:logo_de.svg at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:419) at net.sf.jasperreports.renderers.BatikRenderer.getInstance(BatikRenderer.java:318) at net.sf.jasperreports.renderers.BatikRenderer$getInstance.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at report3_1359470066359_298192.evaluate(calculator_report3_1359470066359_298192:199) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190) ... 22 more Caused by: java.io.FileNotFoundException: repo:logo_de.svg (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:106) at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:405) ... 29 more 2013-01-29 15:34:28,714 ERROR errorPage_jsp,http-8080-20:487 - stack trace of exception that redirected to errorPage.jsp com.jaspersoft.jasperserver.api.JSException: Error filling report at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$FillResultListener.reportFillError(EngineServiceImpl.java:1178) at net.sf.jasperreports.engine.fill.BaseFillHandle.notifyError(BaseFillHandle.java:211) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:135) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:859) at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:821) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1622) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1005) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:881) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("repo:logo_de.svg")) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:966) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:483) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:463) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:459) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2044) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:778) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:120) ... 9 more Caused by: net.sf.jasperreports.engine.JRException: Error loading byte data : repo:logo_de.svg at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:419) at net.sf.jasperreports.renderers.BatikRenderer.getInstance(BatikRenderer.java:318) at net.sf.jasperreports.renderers.BatikRenderer$getInstance.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at report3_1359470066359_298192.evaluate(calculator_report3_1359470066359_298192:199) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190) ... 22 more Caused by: java.io.FileNotFoundException: repo:logo_de.svg (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:106) at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:405) ... 29 more What goes wrong here??? Link to comment Share on other sites More sharing options...
ernestoo Posted January 30, 2013 Share Posted January 30, 2013 Hmm..played around with this and got the same error..but maybe a bit further. I think you need getInstanceFromLocation not getInstance http://jasperreports.sourceforge.net/api/net/sf/jasperreports/renderers/BatikRenderer.html#getInstanceFromLocation(net.sf.jasperreports.engine.JasperReportsContext, java.lang.String) Link to comment Share on other sites More sharing options...
rucksman007 Posted February 1, 2013 Author Share Posted February 1, 2013 Finally I was able to solve this problem. Not the way I wanted to, but in the end this solution works for me. Instead of "new java.io.File" I am using now "new java.net.URL" and point to a web directory on my localhost (a regular apache webserver is running anyway on my jasperserver machine). So the complete string is:new java.net.URL("http://localhost/jaspersoft/logo.svg") Link to comment Share on other sites More sharing options...
BigAl Posted November 4, 2013 Share Posted November 4, 2013 If you use net.sf.jasperreports.renderers.BatikRenderer.getInstanceFromLocation("./image/logo.svg")<imageExpression><![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstanceFromLocation("./image/logo.svg")]]></imageExpression> [/code]instead ofnet.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("Z:\jaspersoft\reports\logo.svg"))[/code]you can use relative path. Since the absolut path could eventually not found after deployment to any render server. Link to comment Share on other sites More sharing options...
toffer Posted March 19, 2014 Share Posted March 19, 2014 Thank you very much. Been struggling with this for a while now! Link to comment Share on other sites More sharing options...
metmuler Posted May 27, 2014 Share Posted May 27, 2014 Hi all, I have used this code to add SVG image in iReport but I have an error which says "Error displaying report page.See the console for details". The problem is nothing is displayed in the console. Can any one help me? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now