Como nomear o pdf que é gerado pelo ireport

olá, boa tarde

sei que é uma duvida bem boba :oops: , mas pesquisei e não achei a resposta

estou mexendo so pra estudar no ireport e fiz um exemplo simples de produto, esta funcionando direitinho, porem ao mandar gerar o pdf ele é gerado com o nome da action “produto-listar.do.pdf” (em extensão pdf)

vou postar oi código da classe que criei para gerar o pdf

public class Relatorio {
    private Connection conn;
    private JasperReport caminhoJrxml;
    private JasperPrint printReport = new JasperPrint();
    
    public OutputStream gerarRelatorio(Map parametros, String relatorioJRxml, HttpServletResponse response){
        OutputStream out = null;
        response.setContentType( "application/pdf" );
        try {
            out = response.getOutputStream();
            conn = DriverManager.getConnection("jdbc:mysql://localhost/teste?user=root&password=root");
            InputStream caminho = getClass().getResourceAsStream( relatorioJRxml+".jrxml" );
            caminhoJrxml = JasperCompileManager.compileReport(caminho) ;
            printReport = JasperFillManager.fillReport(caminhoJrxml, parametros, conn);

            JRExporter exportador = new JRPdfExporter();
            exportador.setParameter(JRExporterParameter.JASPER_PRINT, printReport);
            exportador.setParameter(JRExporterParameter.OUTPUT_STREAM, out); 
            
            exportador.exportReport();
        } catch (Exception e) {
            System.out.println("");System.out.println("");
            System.out.println("erro : " + e.getMessage());
            System.out.println("");System.out.println("");
            e.printStackTrace();
        }
        
        return out;
    }
    
}

alguém sabe como me ajudar?

Olá, não trabalhe com arquivos .jrxml porquê você irá ter que compilar toda vez que for gerar um PDF novo, fazendo com que consuma mais recurso de máquina e consequentemente, sua aplicação fica mais lenta. Use os arquivos .jasper gerado (compilado).

O código abaixo devolve o array de bytes que você precisa. Dai é só fazer um FileOutputStream, ou escrever na outputStream do seu servlet:

Map<String, Object> params = new HashMap<String, Object>();
			
List<Object> listaDeObjetos = new ArrayList<Object>();

InputStream inputStream = getClass().getResourceAsStream("seuCompiladoAqui.jasper");
			
JRDataSource jrDataSource = new JRBeanCollectionDataSource(listaDeObjetos);

JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, params, jrDataSource);

byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);

[]'s

obrigada pela ajuda

desculpa a ignorância, mas como uso o FileOutputStream ou o outputStream?

eu nunca usei