/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package actions; import com.opensymphony.xwork2.ActionSupport; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import org.apache.struts2.ServletActionContext; /** * * @author XCoder */ public class NAction extends ActionSupport { private static JasperReport jasReport; private static JasperPrint jasPrint; private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public void setInputStream(InputStream inputStream) { this.inputStream = inputStream; } public static JasperPrint getJasPrint() { return jasPrint; } public static void setJasPrint(JasperPrint jasPrint) { NAction.jasPrint = jasPrint; } public static JasperReport getJasReport() { return jasReport; } public static void setJasReport(JasperReport jasReport) { NAction.jasReport = jasReport; } public String execute() throws FileNotFoundException, JRException, SQLException, ClassNotFoundException, IOException { String path = ServletActionContext.getServletContext().getRealPath("/"); FileInputStream fis = new FileInputStream(new File(path + "newReport.jrxml")); jasReport = JasperCompileManager.compileReport(fis); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sgsitsdb", "root", "root"); jasPrint = JasperFillManager.fillReport(jasReport, null, con); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(jasPrint, baos); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); inputStream = bais; return SUCCESS; } }