Neste artigo iremos aprender como fazer a chamada de um relat\u00f3rio criado em JasperReports atrav\u00e9s de um programa Java. Caso voc\u00ea n\u00e3o saiba criar relat\u00f3rios leia este artigo <\/a>.<\/p>\n <\/p>\n <\/p>\n Cria a classe chamada “GeraRelatorio” e adicione o c\u00f3digo abaixo:<\/p>\n Aqui temos um servlet “RelatorioAlunoServlet” que \u00e9 uma classe que trabalha com requisi\u00e7\u00f5es e respostas HTTP em Java. Ao ser executado este servlet ir\u00e1 gerar o “RelatorioAluno.pdf” e abrir uma nova aba no Browser e dar\u00e1 a op\u00e7\u00e3o ao usu\u00e1rio de abrir ou salvar o relat\u00f3rio que foi gerado.<\/p>\n Por fim vamos fazer a p\u00e1gina que chamar\u00e1 o Servlet respons\u00e1vel pela exporta\u00e7\u00e3o do relat\u00f3rio em PDF.<\/p>\n Pronto. Agora voc\u00ea pode fazer a chamada do seu relat\u00f3rio.<\/p>\n Execute o seu projeto e clique no link:<\/p>\n Verifique se na pasta WEB-INF\\lib da sua aplica\u00e7\u00e3o h\u00e1 o arquivo com o Driver do Banco de dados MySQL Verifique a conex\u00e3o com o Banco de Dados: Chamar um relat\u00f3rio JasperReports atrav\u00e9s do Java Ol\u00e1 amigos, Neste artigo iremos aprender como fazer a chamada de um relat\u00f3rio criado em JasperReports atrav\u00e9s de um programa Java. Caso voc\u00ea n\u00e3o saiba criar relat\u00f3rios leia este artigo .<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[1],"tags":[],"yoast_head":"\n1. Criando o projeto<\/H2>
\n Crie um projeto web Web<\/a> chamado JasperReportsWeb.<\/p>\n2. Conectando o projeto ao Relat\u00f3rio<\/H2><\/p>\n
\r\npackage br.com.feltex.jasperreportsweb;\r\n\r\nimport java.sql.Connection;\r\nimport java.sql.DriverManager;\r\nimport java.sql.SQLException;\r\nimport java.util.HashMap;\r\n\r\nimport net.sf.jasperreports.engine.JasperCompileManager;\r\nimport net.sf.jasperreports.engine.JasperExportManager;\r\nimport net.sf.jasperreports.engine.JasperFillManager;\r\nimport net.sf.jasperreports.engine.JasperPrint;\r\nimport net.sf.jasperreports.engine.JasperReport;\r\nimport net.sf.jasperreports.engine.JasperRunManager;\r\n\r\npublic class GeraRelatorio {\r\n\r\n\t\/\/ M\u00e9todo para realizar a conex\u00e3o com o banco de dados\r\n\tpublic Connection getConexao() throws SQLException, ClassNotFoundException {\r\n\t\tClass.forName(\"com.mysql.jdbc.Driver\");\r\n\t\tConnection conexao = DriverManager.getConnection(\"jdbc:mysql:\/\/localhost:3306\/bdacademicnet\", \"root\", \"teco01\");\r\n\t\treturn conexao;\r\n\t}\r\n\r\n\t\/\/ M\u00e9todo para ser executado em JSE\r\n\tpublic static void main(String[] args) {\r\n\t\tSystem.out.println(\"Inicio\");\r\n\t\tGeraRelatorio geraRelatorio = new GeraRelatorio();\r\n\t\tString path = \"E:\/Java\/Eclipse\/workspace02\/JasperReportsWeb\/WebContent\/relatorios\/\";\r\n\t\tgeraRelatorio.gerarPDF(path);\r\n\t\tSystem.out.println(\"Fim\");\r\n\t}\r\n\r\n\tpublic byte[] gerarPDF(String diretorio) {\r\n\t\tbyte[] retorno = null;\r\n\t\tString relatorio = diretorio + \"RelAlunos.jrxml\";\r\n\t\tString imagem = diretorio + \"cherry.jpg\";\r\n\t\ttry {\r\n\t\t\t\/\/ Faz a compila\u00e7\u00e3o do relat\u00f3rio\r\n\t\t\tJasperReport jasperReport = JasperCompileManager.compileReport(relatorio);\r\n\r\n\t\t\t\/\/ Cria o mapa de par\u00e2metros que ser\u00e1 enviado ao relat\u00f3rio\r\n\t\t\tHashMap
3. Cria\u00e7\u00e3o do Servlet <\/H2><\/p>\n
\r\npackage br.com.feltex.jasperreportsweb;\r\n\r\nimport java.io.File;\r\nimport java.io.IOException;\r\nimport java.io.OutputStream;\r\n\r\nimport javax.servlet.ServletContext;\r\nimport javax.servlet.ServletException;\r\nimport javax.servlet.annotation.WebServlet;\r\nimport javax.servlet.http.HttpServlet;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\n\r\n@WebServlet(\"\/RelatorioAlunoServlet\")\r\npublic class RelatorioAlunoServlet extends HttpServlet {\r\n\tprivate static final long serialVersionUID = 1L;\r\n\r\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\r\n\t\tdoPost(request, response);\r\n\t}\r\n\r\n\tprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,\r\n\t\t\tIOException {\r\n\t\ttry {\r\n\r\n\t\t\t\/\/ Pega o caminho completo de onde a aplica\u00e7\u00e3o est\u00e1 rodando\r\n\t\t\tServletContext servletContext = getServletContext();\r\n\t\t\tString diretorio = servletContext.getRealPath(File.separator) + \"relatorios\/\";\r\n\r\n\t\t\t\/\/ Instaciar a classe que possui os m\u00e9todos de gera\u00e7\u00e3o de relat\u00f3rio\r\n\t\t\tGeraRelatorio geraRelatorio = new GeraRelatorio();\r\n\r\n\t\t\t\/\/ Chama o m\u00e9todo que gera um array de bytes com o\r\n\t\t\t\/\/ conte\u00fado do arquivo PDF\r\n\t\t\tbyte[] pdf = geraRelatorio.gerarPDF(diretorio);\r\n\r\n\t\t\tOutputStream outStream = response.getOutputStream();\r\n\t\t\tresponse.setHeader(\"Content-Disposition\", \"inline, filename=RelatorioAluno.pdf\");\r\n\t\t\tresponse.setContentType(\"application\/pdf\");\r\n\t\t\tresponse.setContentLength(pdf.length);\r\n\t\t\toutStream.write(pdf, 0, pdf.length);\r\n\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n
4. P\u00e1gina Principal<\/H2><\/p>\n
\r\n\r\n\r\n
\r\n\tClique aqui para\r\n\t\tgerar o relat\u00f3rio!<\/a>\r\n<\/body>\r\n<\/html>\r\n<\/pre>\n5. Conclus\u00e3o<\/H2>
\n Vimos que \u00e9 poss\u00edvel realizar chamadas de uma relat\u00f3rio JasperReports em uma aplica\u00e7\u00e3o Java.
\nCaso voc\u00ea tenha uma aplica\u00e7\u00e3o JSE, as famosas aplica\u00e7\u00f5es desktop, voc\u00ea pode utilizar o m\u00e9todo “main”
\nda classe GeraRelatorio. Isso gerar\u00e1 o arquivo PDF na destino “C:\\temp”.<\/p>\n
\n Ent\u00e3o \u00e9 isso amigos. Por hoje \u00e9 s\u00f3 e vida que Segue!<\/p>\n Erros poss\u00edveis:<\/H2><\/p>\n
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver<\/H3><\/li>\n
\nUm nome parecido com: “mysql-connector-java-5.1.9.jar”<\/p>\n“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure”<\/H3><\/li>\n
\n 1. No m\u00e9todo getConexao da classe GeraRelatorio veja se todas as informa\u00e7\u00f5es do seu banco de dados
\n est\u00e3o corretas. Verifique as vari\u00e1veis: nomeBanco, usuario e senha.
\n 2. Se estiver tudo correta, veja se o seu banco de dados foi inicializado.<\/p>\nLinks relacionados<\/H2>
\nComo criar relat\u00f3rios com o JasperReports<\/a>
\n
\nSite Oficial do JasperReports <\/a><\/p>\nN\u00e3o se esque\u00e7a de curtir este post nas rede sociais. D\u00ea a sua contribui\u00e7\u00e3o social e ajude o autor:<\/H2><\/p>\n","protected":false},"excerpt":{"rendered":"