Erro com Relatório

0 respostas
edisonsilva

Olá pessoal....
Estou utilizando na minha criação de relatórios IReports, Jasper e PostgresSQL.
Ocorre que minha aplicação é desenvolvida na minha máquina com PostgresSQL local, criei os relatórios com conexão na minha máquina, fiz os teste e tudo OK.
Só que para colocar a aplicação no ar, é necessário fazer o deploy no servidor, que utiliza o PostgresSQL da empresa.
Ai que está o problema!!! Minha aplicação funciona mas quando é para gerar os relatórios dá o seguinte erro.

Erro ao gerar o relatório
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

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

exception 

javax.servlet.ServletException: Error instantiating servlet class relatorio.RelatorioMatrimonio
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	java.lang.Thread.run(Thread.java:534)


root cause 

java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException
	java.lang.Class.getDeclaredConstructors0(Native Method)
	java.lang.Class.privateGetDeclaredConstructors(Class.java:1618)
	java.lang.Class.getConstructor0(Class.java:1930)
	java.lang.Class.newInstance0(Class.java:278)
	java.lang.Class.newInstance(Class.java:261)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	java.lang.Thread.run(Thread.java:534)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.28
Minha Servlet que gera o relatório
protected void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		PreparedStatement ps = null;
		ResultSet rs = null;
		Connection conn = null;
		Util dt = new Util();
		
		String codigo = new String(req.getParameter("codBatismo"));
		String dataNascimento = new String();
		String dataBatismo = new String();
		String codigoControle = new String();
		String enderecoParoquia = new String();
		String telefoneParoquia = new String();
		String pathJasper = getServletContext().getRealPath("/DOCS/relatorios/") + "/";
		
		try{
			PoolConexao pc = new PoolConexao();
			conn = pc.getConnection();
			ps = conn.prepareStatement("Select b.paroquias_par_codigo, b.bat_data, p1.pes_nascimento, p.* " +
											"from batismos b, paroquias p, pessoas p1 " +
											"where " + 
											"b.bat_codigo = ?  and " +
											"b.paroquias_par_codigo = p.par_codigo and " +
											"p1.pes_codigo = b.pessoas_pes_codigo ");
											
			ps.setInt(1,Integer.parseInt(codigo));
			rs = ps.executeQuery();
			
			rs.next();
			
			enderecoParoquia = rs.getString("par_endereco") + " - " + rs.getString("par_bairro") + " - " + rs.getString("par_cidade") +
							   " / SP CEP: " + rs.getString("par_cep");
			telefoneParoquia = "Tel.: (13)" + rs.getString("par_telefone") + " FAX.: (13)" + rs.getString("par_fax") + " - e-mail: " + rs.getString("par_email");
			dataBatismo = dt.getConverteDate3(rs.getString("bat_data"));
			dataNascimento = dt.getConverteDate3(rs.getString("pes_nascimento"));
					
			Map parameters = new HashMap();
			parameters.put("cidade", rs.getString("par_cidade"));
			parameters.put("codigoBatismo", codigo);
			parameters.put("dataBatismo", dataBatismo);
			parameters.put("dataNascimento", dataNascimento);
			parameters.put("enderecoParoquia", enderecoParoquia);
			parameters.put("estadoResidente", "SP");
			parameters.put("nomeParoquia", rs.getString("par_nome"));
			parameters.put("siteParoquia", rs.getString("par_site"));
			parameters.put("telParoquia", telefoneParoquia);
			
					
			//JRResultSetDataSource jrRS = new JRResultSetDataSource(rs); 
			JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "CertidaoBatismo.jasper", parameters, conn);
			byte[] buffer = JasperExportManager.exportReportToPdf(impressao);
			
			res.setContentType("application/pdf");
			res.setContentLength(buffer.length);
			ServletOutputStream ouputStream = res.getOutputStream();
			ouputStream.write(buffer, 0, buffer.length);
			ouputStream.flush();
			ouputStream.close();

			
			
			
		}catch (NamingException e) {
			res.getWriter().println("Erro ao gerar o relatório 2 : " + e);
			//e.printStackTrace();
		} catch (SQLException e) {
			res.getWriter().println("Erro ao gerar o relatório 4: " + e);
			//e.printStackTrace();
		}catch(JRException e){
			res.getWriter().println("Erro ao gerar o relatório 8: " + e);
			//e.printStackTrace();
		}
		finally {
			try {
				if (rs != null)	rs.close();
				
				if (ps != null)	ps.close();
				
				if (conn != null && !conn.isClosed()) conn.close();
			} catch (SQLException e1) {}
		}
		
	}

Agradeço desde já qualquer informação
:idea: Edison Silva

Criado 7 de abril de 2006
Respostas 0
Participantes 1