Exportar arquivo pdf usando jasperreport

Olá gente. Sou iniciante em programação e estou realizando testes para exportar uma tabela feita no banco de dados para PDF. Pegando alguns códigos na internet e realizando ajustes cheguei a um produto final que, quando executo no Netbeans, não mostra erros, porém abre o arquivo em PDF totalmente em branco. Segue o código abaixo. Alguém sabe o que pode ser?

RelAlunos.jrxml

<?xml version="1.0" encoding="UTF-8"?>

Index.html

Seja bem vindo! Geração de relatório:
Clique aqui para gerar o relatório!

Pacote model.
Classe GeraRelatorio.java

package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

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 net.sf.jasperreports.engine.JasperRunManager;

public class GeraRelatorio {

// Método para realizar a conexão com o banco de dados
public Connection getConexao() {
    try {
        Class.forName("org.postgresql.Driver");

        Connection conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/meubd", "tutorial", "123456");
        return conexao;
    } catch (Exception e) {

        e.printStackTrace();
        return null;
    }
}

// Método para ser executado em JSE
public static void main(String[] args) {
    System.out.println("Inicio");
    GeraRelatorio geraRelatorio = new GeraRelatorio();
    String path = "C:\\Users\\cpf\\Documents\\NetBeansProjects\\JasperReportsWeb\\web\\relatorios\\";
    geraRelatorio.gerarPDF(path);
    System.out.println("Fim");
}

public byte[] gerarPDF(String diretorio) {System.out.println("D1");
    byte[] retorno = null;
    //String relatorio = diretorio + "RelAlunos.jrxml";
    String relatorio ="C:\\Users\\cpf\\Documents\\NetBeansProjects\\JasperReportsWeb\\web\\relatorios\\RelAlunos.jrxml";
    String imagem = diretorio + "cherry.jpg";
    try 
            {

        // Faz a compilação do relatório
        JasperReport jasperReport = JasperCompileManager.compileReport(relatorio);
        System.out.println("D3");

        // Cria o mapa de parâmetros que será enviado ao relatório
        HashMap<String, Object> paramatros = new HashMap<String, Object>();
        System.out.println("D4");

        // Faz o apontamento para a imagem que aparece no top do relatório
        paramatros.put("logo", imagem);
        System.out.println("D5");

        // Preenche os dados do relatório
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, paramatros, getConexao());
        System.out.println("D6");

        // Objeto para a ser retornado
        retorno = JasperRunManager.runReportToPdf(jasperReport, paramatros, getConexao());
        System.out.println("D7");

        // Gera o arquivo PDF no caminho especificado
        JasperExportManager.exportReportToPdfFile(jasperPrint, "M://temp/RelatorioAlunos.pdf");
        System.out.println("D8");

    } catch (Exception e) {
        System.out.println("D9");
        e.printStackTrace();
    }
    return retorno;
}

}

Classe RelatorioAlunoServlet.java

package model;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RelatorioAlunoServlet")
public class RelatorioAlunoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    try {

        // Pega o caminho completo de onde a aplicação está rodando
        ServletContext servletContext = getServletContext();
        String diretorio = servletContext.getRealPath(File.separator) + "relatorios/";

        // Instaciar a classe que possui os métodos de geração de relatório
        GeraRelatorio geraRelatorio = new GeraRelatorio();

        // Chama o método que gera um array de bytes com o
        // conteúdo do arquivo PDF
                    System.out.println("c1");
        byte[] pdf = geraRelatorio.gerarPDF(diretorio);System.out.println("c2");

        OutputStream outStream = response.getOutputStream();
        response.setHeader("Content-Disposition", "inline, filename=RelatorioAluno.pdf");
        response.setContentType("application/pdf");
        response.setContentLength(pdf.length);
        outStream.write(pdf, 0, pdf.length);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

Meu código jrxml não foi publicado. Se alguém puder, deixe o email que eu envio.