import com.*;
import org.hibernate.Session;
import com.wavemaker.runtime.RuntimeAccess;
import com.wavemaker.runtime.server.DownloadResponse;
import java.net.URL;
import net.sf.jasperreports.engine.util.JRLoader;
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 java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import org.springframework.mail.javamail.ConfigurableMimeFileTypeMap;
public class GeneradorReporte extends com.wavemaker.runtime.javaservice.JavaServiceSuperClass {
public DownloadResponse getReport() throws Exception {
DownloadResponse ret=new DownloadResponse();
ConfigurableMimeFileTypeMap mimeFileTypeMap = new ConfigurableMimeFileTypeMap();
try {
//para recoger la conexion de la base de datos
Dbescolar service = (Dbescolar) RuntimeAccess.getInstance().getService(Dbescolar.class);
service.begin();
Session session = service.getDataServiceManager().getSession();
//para enviar parametros al reporte
/*Map parameters = new HashMap();
parameters.put("id_facultad",new Integer(id_facultad));
parameters.put("facultad",facultad);*/
//mi direccion del archivo de jasper
URL fileUrl = this.getClass().getResource("mirepo.jasper");
//para cargar el jasper
JasperReport report2 = (JasperReport)JRLoader.loadObject(fileUrl);
//para cargar: la conexion de la base de datos al reporte, parametros y el archivo jasper
JasperPrint jasperPrint = JasperFillManager.fillReport(report2,null,session.connection());
//exportar el proyecto a PDF
ByteArrayOutputStream out = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, out);
//para cargar el PDF como un respuesta de descarga
ret.setContentType(mimeFileTypeMap.getContentType("mirepo.pdf"));
ret.setContents(new ByteArrayInputStream(out.toByteArray()));
ret.setFileName("mirepo.pdf");
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}
y lo puede llamar con el link
"services/GeneradorReporte.download?method=getReport"
y en tu navegador seria
http://localhost:8094/miproyecto/services/GeneradorReporte.download?method=getReport
Espero que les sirva
