DataSink Report - Parameter not found
I have been trying to capture the request and response payloads of a RESTful webservice in the SOAP-UI test runs, via. the use of DataSink.
In order to visualize, the set up is as below:
Properties in the DataSink (as Subreport) have also been set as seen below :
Next, I created a subReport named it UniRestService. Below is the code :
SubReport Name: UniRestService
ReportType: TestCase
Scope: Project
DataSource: Data Sink
<jasperReport xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" language="groovy" pageWidth="535" pageHeight="842" columnWidth="535" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<template>"../../styles.jrtx"</template>
<field name="sessionId" class="java.lang.String"/>
<field name="request" class="java.lang.String"/>
<field name="response" class="java.lang.String"/>
<columnHeader>
<band height="37">
<staticText>
<reportElement style="SmallHeader" x="0" y="0" width="535" height="34"/>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="14" isBold="true" isUnderline="true"/>
</textElement>
<text>API Execution Details</text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="120">
<staticText>
<reportElement x="0" y="0" width="67" height="20"/>
<textElement>
<font isBold="true" isUnderline="true"/>
</textElement>
<text>Session ID</text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement x="67" y="0" width="100" height="20"/>
<textFieldExpression>$F{sessionId}</textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="20" width="67" height="20"/>
<textElement>
<font isBold="true" isUnderline="true"/>
</textElement>
<text>Request :</text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement x="67" y="20" width="468" height="20"/>
<textFieldExpression>$F{request}</textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="40" width="67" height="20"/>
<textElement>
<font isBold="true" isUnderline="true"/>
</textElement>
<text>Response:</text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement x="67" y="40" width="468" height="20"/>
<textFieldExpression>$F{response}</textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Next, I created the the main report named : test, Below is the configuration screenshot:
And the correponding code is below :
<jasperReport xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ReportTemplate" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<template>"../../styles.jrtx"</template>
<!--FIELDS & PARAMS-->
<title>
<band height="70">
<textField>
<reportElement x="159" y="13" width="229" height="42"/>
<textElement>
<font size="26"/>
</textElement>
<textFieldExpression class="java.lang.String">$F{name} + " Report"</textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band/>
</pageHeader>
<detail>
<band height="122">
<!--SUBREPORTS UNDER HERE-->
<subreport isUsingCache="true">
<reportElement positionType="Float" isPrintRepeatedValues="false" x="0" y="0" width="500" height="30"/>
<dataSourceExpression><![CDATA[$P{dataSink}]]></dataSourceExpression>
<subreportExpression><![CDATA["subreport:UniRestService"]]></subreportExpression>
</subreport>
</band>
</detail>
</jasperReport>
I have also tried with the the following dataSourceExpression in the code snippet above :
<dataSourceExpression><$P{dataSink}></dataSourceExpression>
<subreportExpression><"subreport:UniRestService"></subreportExpression>
In either cases, I get the following error, from the error.log.
Sun Nov 01 10:44:10 EST 2015:ERROR:net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Parameter not found : dataSink net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Parameter not found : dataSink at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:258) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:140) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at com.eviware.soapui.reporting.engine.jasper.GenerateJasperReport.createReport(SourceFile:409) at com.eviware.soapui.reporting.engine.jasper.GenerateJasperReport$ReportFillWorker.construct(SourceFile:382) at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46) at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:131) at java.lang.Thread.run(Unknown Source)
Any help is much appreciated here.
Thanks in advance.
This issue was resolved by following the steps in
:smileyvery-happy::smileyvery-happy::smileyvery-happy::smileyvery-happy::smileyvery-happy::smileyvery-happy: