create a class that will only be responsible for converting from jrxml to pdf like this one below: package br.com.fjsistemas.relatorios;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.sql.SQLException;import javax.sql.DataSource;import org.springframework.stereotype.Component;import br.com.fjsistemas.repository.VendaRepository;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;@Componentpublic class ConverteJrxmlToPdf { @SuppressWarnings("unused") private VendaRepository vendaRepository; private DataSource dataSource; public ConverteJrxmlToPdf(VendaRepository vendaRepository, DataSource dataSource) { this.vendaRepository = vendaRepository; this.dataSource = dataSource; } public byte[] conversor() throws JRException, SQLException { InputStream reportJrxml = this.getClass().getResourceAsStream("/RelatorioVendas.jrxml"); JasperReport document = JasperCompileManager.compileReport(reportJrxml); JasperPrint print = JasperFillManager.fillReport(document, null, dataSource.getConnection()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(print, baos); byte[] relatorio = baos.toByteArray(); return relatorio; }}[/code]and in the view class, call the method via a button exportarRelatorio.addThemeVariants(ButtonVariant.LUMO_PRIMARY); exportarRelatorio.getStyle().set("margin-top", "37px"); exportarRelatorio.setWidth("180px"); FileDownloadWrapper buttonWrapper = new FileDownloadWrapper(new StreamResource("RelatorioVenda.pdf", () -> { try { return new ByteArrayInputStream(pdf.conversor()); } catch (JRException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }));[/code]