Tentando gerar um pdf com o jasper reports

Pessoal,

Estou tentando gerar um pdf com base em um .jasper que criei usando o ireports, mas não estou conseguindo.

emite.java

package utilitarios;

//import net.sf.jasperreports
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import java.util.HashMap;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class emitebl {

private static Connection getConnection( ) throws ClassNotFoundException, SQLException{
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://localhost/sist";
String user = "usuario";
String password = "";

Class.forName(driver);
Connection con = DriverManager.getConnection( url, user, password );
return con;
}

public void geraRelatorio( ) throws JRException, Exception{
Connection con = getConnection( );
Statement stm = con.createStatement( );
String query = "SELECT * FROM emissaobl WHERE id=4";
ResultSet rs = stm.executeQuery(query);

JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

Map parameters = new HashMap();

JasperFillManager.fillReportToFile("emitebl.jasper",parameters,jrRS);
JasperExportManager.exportReportToPdfFile("emitebl.jrprint"); 

JasperViewer.viewReport("emissao_bl.pdf",false); 
}
} 

emissao.jsp:

<%@ page import="utilitarios.*" %>
<% 
new emitebl().geraRelatorio();
%>

E me apresenta esse erro:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: emitebl.jasper
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
	org.apache.jsp.emissaobl.exportapdf_jsp._jspService(exportapdf_jsp.java:76)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

net.sf.jasperreports.engine.JRException: emitebl.jasper
	net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:73)
	net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:270)
	utilitarios.emitebl.geraRelatorio(emitebl.java:37)
	org.apache.jsp.emissaobl.exportapdf_jsp._jspService(exportapdf_jsp.java:54)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

Onde eu coloco o emitebl.jasper?, pois pelo erro me parece que ele não encontrou o .jasper. Eu tentei colocar ele no diretório da aplicação, mas não vai :frowning:

Alguem sabe como posso resolver isso??? :frowning:

use o getRealPath() para obter o caminho real o seu .jasper.

kra…vlw mesmo, ele criou o pdf…mas o engraçado é que essa mensagem de erro aparece mesmo assim:


net.sf.jasperreports.engine.JRException: Error loading object from file : /home/eduardo/workspace/local/build/web/emissaobl/emitebl.pdf

Qual seria o motivo?..pq eu verifiquei e o caminho desse arquivo esta correto. Me parece que ele não consegue abri-lo.

Alguem sabe o pq??? :frowning: :?: