JSP - Erro ao acessar rel. via web

7 respostas
Marcelo.d2

Olá pessoal, td blzz.

Qdo chamo o JSP, o tomcat me retorna um erro q está logo abaixo:

HTTP Status 500 - 

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

type Exception report

message 

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

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 37 in the jsp file: /jsp/html.jsp

Generated servlet error:
    [javac] Compiling 1 source file

C:\Arquivos de programas\Apache Group\Tomcat 4.1\work\Standalone\localhost\web_consultas\jsp\html_jsp.java:65: cannot resolve symbol
symbol  : method fillReport (net.sf.jasperreports.engine.JasperReport,java.util.Map,datasource.WebappDataSource)
location: class net.sf.jasperreports.engine.JasperFillManager
		JasperFillManager.fillReport(
                                 ^
1 error


	at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
	at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:248)

O código JSP q estou usando é este:

<%@ page errorPage="error.jsp" %>
<%@ page import="datasource.*" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
	File reportFile = new File(application.getRealPath("/reports/usuarios.jasper"));

	JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());

	Map parameters = new HashMap();
	parameters.put("ReportTitle", "Address Report");
	parameters.put("BaseDir", reportFile.getParentFile());
				
	JasperPrint jasperPrint = 
		JasperFillManager.fillReport(jasperReport,parameters,new WebappDataSource());
				
	JRHtmlExporter exporter = new JRHtmlExporter();

	StringBuffer sbuffer = new StringBuffer();

	Map imagesMap = new HashMap();
	session.setAttribute("IMAGES_MAP", imagesMap);
	
	exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
	exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
	exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
	exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image=");
	
	exporter.exportReport();
%>

7 Respostas

ranophoenix

datasource.WebappDataSource implementa JRDataSource?

Marcelo.d2

sim

ranophoenix
JasperPrint jasperPrint = 
 		JasperFillManager.fillReport(jasperReport,parameters,new WebappDataSource());

Mostra o código da tua class WebappDataSource. Por alguma coisa ela está interferindo na assinatura do método que deveria (pro seu caso) ser assim:

public static JasperPrint fillReport(JasperReport jasperReport,
java.util.Map parameters,
JRDataSource dataSource)
throws JRException

ranophoenix

Se vc estiver trabalhando com ResultSet pq não utiliza JRResultSetDataSource(java.sql.ResultSet rs) ?

Marcelo.d2
package datasource;

import java.sql.*;
import net.sf.jasperreports.engine.*;


/**
 * @author Teodor Danciu ([email removido])
 * @version $Id: WebappDataSource.java,v 1.6 2005/05/03 09:41:16 teodord Exp $
 */
public class WebappDataSource
{
	public static void main(String[] Args)
	{
		try
		{
			//ORACLE - JDBC
			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
			Connection conn = DriverManager.getConnection("jdbc:Oracle:thin:@server:1521:Oracle","user","passwd");

			System.out.println("Funcionou.");
		}
		catch (Exception E)
		{
			System.err.println("NAO Funcionou, PAU");
			E.printStackTrace();
		}
}
}
Diogenes

Marcelo, tuh nao tinha falado q a sua classe WebappDataSource implementava JRDataSource???

Marcelo.d2

Certo, vc tem algum exemplo mais simples q eu possa utilizar pra se conectar no oracle e exibir o *.jasper no browser.

Criado 6 de julho de 2005
Ultima resposta 7 de jul. de 2005
Respostas 7
Participantes 3