i've created an application which prints out a report using jasper report 5.0, struts2 and hibernate. The jasper report uses hql. The app works fine but the problem is that i'm getting blank report in browser when i triggered the struts action, but when i preview the report in netbeans i'm getting the report with datas.
can anyone please tell me some solution for this.
When report run seperately
Blank report when same report is generated through struts2 + hibernate
My code is as given below
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="struts-default,jasperreports-default">
<result-types>
<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult" />
</result-types>
<action name="getpdf" class="commonpackage.HibernateClass" method="getpdf">
<result name="success" type="jasper">
<param name="location">/Reports_HSE/sample.jasper</param>
<param name="dataSource">myList</param>
<param name="format">PDF</param>
</result>
</action>
</package>
</struts>
HibernateClass.java
public class HibernateClass {
private List<PeopleBean> myList;
Session session;
SessionFactory sessionFactory;
public String getpdf()
{
String dest = ServletActionContext.getServletContext().getRealPath("/Reports_HSE/sample.jasper");
session = createSession();
Map parameterMap = new HashMap();
parameterMap.put(
JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, session);
try
{
System.out.println("Filling report...");
JasperFillManager.fillReportToFile(dest, parameterMap);
System.out.println("Done!");
return "success";
}
catch (JRException e)
{
System.out.println("There was an error filling the report.");
e.printStackTrace();
return "error";
}
}
public List getMyList() {
return myList;
}
private Session createSession()
{
SessionFactory sessionFactory = new Configuration().configure()
.buildSessionFactory();
return sessionFactory.openSession();
}
}
sample.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="HibernateQueryDemoReport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" uuid="398cbfdc-5535-4373-bd84-38d1f6d0e677">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="countryCode" class="java.lang.String"/>
<queryString language="hql">
<![CDATA[FROM DepartmentMaster]]>
</queryString>
<field name="id" class="java.lang.Integer"/>
<field name="abcCode1" class="java.lang.String"/>
<field name="abcCode2" class="java.lang.String"/>
<field name="deptCode" class="java.lang.String"/>
<field name="deptName" class="java.lang.String"/>
<field name="status" class="java.lang.String"/>
<field name="createdDate" class="java.util.Date"/>
<field name="modifiedDate" class="java.util.Date"/>
<title>
<band height="30" splitType="Stretch">
<textField>
<reportElement uuid="7c7dd6c2-fb3d-4540-a37d-9c7038a1c5ea" x="0" y="0" width="555" height="30"/>
<textElement/>
<textFieldExpression><![CDATA["Aircraft Registered in Country Code: " ]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="30" splitType="Stretch">
<staticText>
<reportElement uuid="5bd34faa-d13d-4ac0-ab94-c86bc8950920" x="0" y="0" width="100" height="30"/>
<textElement/>
<text><![CDATA[
Tail Number
]]></text>
</staticText>
<staticText>
<reportElement uuid="456f1a7f-7255-4bcc-90ef-1673152ec19d" x="100" y="0" width="100" height="30"/>
<textElement/>
<text><![CDATA[
Serial Number
]]></text>
</staticText>
<staticText>
<reportElement uuid="84e80378-0e25-4d15-acd5-d368feda4982" x="200" y="0" width="100" height="30"/>
<textElement/>
<text><![CDATA[
Year Built
]]></text>
</staticText>
</band>
</pageHeader>
<detail>
<band height="30" splitType="Stretch">
<textField>
<reportElement uuid="5cef4310-14c8-4b6b-9204-99e2fcbfae15" x="0" y="0" width="100" height="30"/>
<textElement/>
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="52648e98-f0cd-4f21-9f2d-2f9db2429fb4" x="100" y="0" width="100" height="30"/>
<textElement/>
<textFieldExpression><![CDATA[$F{deptName}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="533185fe-64cf-4839-b0f8-05fbeb2b5fe9" x="200" y="0" width="100" height="30"/>
<textElement/>
<textFieldExpression><![CDATA[$F{deptCode}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>