Jasper reports 如何在Jasper自定义可视化组件中将javascript作为输入流?

Jasper reports 如何在Jasper自定义可视化组件中将javascript作为输入流?,jasper-reports,Jasper Reports,我正在尝试将D3js与我们的jasper报告集成,当我从jasper studio运行它时,d3图表的报告可以工作。 但是当从spring应用程序执行时,jasper报告无法加载JavaScript文件 我现在要做的是将文件作为输入流放入一个参数中 parameters.put("res_js_Page2_cell3",cacheService.getJasperInputStream("d3charts/Page2_pie/d3_piechart.min.js")); 在报告中: <c

我正在尝试将D3js与我们的jasper报告集成,当我从jasper studio运行它时,d3图表的报告可以工作。 但是当从spring应用程序执行时,jasper报告无法加载JavaScript文件

我现在要做的是将文件作为输入流放入一个参数中

parameters.put("res_js_Page2_cell3",cacheService.getJasperInputStream("d3charts/Page2_pie/d3_piechart.min.js"));
在报告中:

<cvc:itemProperty name="script">
       <valueExpression><![CDATA[$P{res_js_Page2_cell3}]]></valueExpression>
</cvc:itemProperty>

我会尝试传递URI(作为字符串),而不是
InputStream
。我不确定自定义可视化组件的源代码在哪里,但我不会对他们需要字符串感到惊讶。我用
尝试过,它只适用于studio,由于spring boot抛出由以下原因引起的错误
:net.sf.jasperreports.engine.JRException:在:d3_piechart.min.js处未找到字节数据。
您可能需要传递相对于应用程序的正确位置,以便它可以找到它,
未找到字节数据
在尝试解析位置时似乎是一个错误。因此,您可能需要一个URI,如果您在浏览器中使用该URI,则会找到脚本。已尝试过该URI,但不起作用会抛出相同的错误。我的猜测是
cvc:itemProperty
语法可能错误,因为加载带有
valueExpression
的JavaScript时,valueExpression不起作用似乎很奇怪,我仍然认为这是一个错误的位置错误(您没有传递正确的URI(字符串)),但我需要设置一个测试环境来检查,也许我这样做是为了圣诞节的乐趣
net.sf.jasperreports.engine.JRRuntimeException: No script provided for the Custom Visualization component.
       at com.jaspersoft.jasperreports.customvisualization.fill.CVFillComponent.loadResource(CVFillComponent.java:465)
       at com.jaspersoft.jasperreports.customvisualization.fill.CVFillComponent.evaluationPerformed(CVFillComponent.java:327)
       at com.jaspersoft.jasperreports.customvisualization.fill.CVFillComponent.evaluateDelayedElement(CVFillComponent.java:257)
       at net.sf.jasperreports.engine.fill.JRFillComponentElement.resolveElement(JRFillComponentElement.java:219)
       at net.sf.jasperreports.engine.fill.JRFillElement.performDelayedEvaluation(JRFillElement.java:1131)
       at net.sf.jasperreports.engine.fill.JRFillComponentElement.resolveElement(JRFillComponentElement.java:212)
       at net.sf.jasperreports.engine.fill.ElementEvaluationAction.execute(ElementEvaluationAction.java:69)
       at net.sf.jasperreports.engine.fill.DelayedFillActions.runActions(DelayedFillActions.java:269)
       at net.sf.jasperreports.engine.fill.BaseReportFiller.resolveBoundElements(BaseReportFiller.java:771)
       at net.sf.jasperreports.engine.fill.JRBaseFiller.resolveReportBoundElements(JRBaseFiller.java:1093)
       at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1047)
       at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:286)
       at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:122)
       at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:582)
       at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)
       at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:732)
       at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
       at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
       at java.lang.Thread.run(Thread.java:745)
Caused by: net.sf.jasperreports.engine.JRRuntimeException: No script provided for the Custom Visualization component. 
       at com.jaspersoft.jasperreports.customvisualization.fill.CVFillComponent.loadResource(CVFillComponent.java:456)
       ... 20 more