Erro ireport

galera,

estou fazendo um relatorio no ireport para gerar pdf e está dando o erro abaixo:

[code]22/09/2011 22:05:10 net.sf.jasperreports.engine.component.ComponentsEnvironment findComponentBundles
AVISO: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:

  1. Cannot cast from Date to String
    value = (java.lang.String)(new java.util.Date()); //$JR_EXPR_ID=9$
    <-------------------------------------->

  2. Cannot cast from Date to String
    value = (java.lang.String)(new java.util.Date()); //$JR_EXPR_ID=10$
    <-------------------------------------->

  3. Cannot cast from int to String
    value = (java.lang.String)(+ ((java.lang.Integer)variable_PAGE_NUMBER.getValue())); //$JR_EXPR_ID=12$
    <------------------------------------------------------------------------>

  4. Cannot cast from Date to String
    value = (java.lang.String)(new java.util.Date()); //$JR_EXPR_ID=9$
    <-------------------------------------->

  5. Cannot cast from Date to String
    value = (java.lang.String)(new java.util.Date()); //$JR_EXPR_ID=10$
    <-------------------------------------->

  6. Cannot cast from int to String
    value = (java.lang.String)(+ ((java.lang.Integer)variable_PAGE_NUMBER.getEstimatedValue())); //$JR_EXPR_ID=12$
    <--------------------------------------------------------------------------------->

  7. Cannot cast from Long to String
    value = (java.lang.String)(((java.lang.Long)field_codigo.getValue())); //$JR_EXPR_ID=13$
    <---------------------------------------------------------------------------------------->

  8. Cannot cast from Boolean to String
    value = (java.lang.String)(((java.lang.Boolean)field_nacional.getValue())); //$JR_EXPR_ID=16$
    <------------------------------------------------------------------------------------------------->

  9. Cannot cast from Integer to String
    value = (java.lang.String)(((java.lang.Integer)field_status.getValue())); //$JR_EXPR_ID=19$
    <------------------------------------------------------------------------------->
    27 errors

    at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:191)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:148)
    at br.com.teste.Relatorio.gerarPDF(Relatorio.java:107)[/code]

preciso de ajuda :shock:

thanks

esqueci de postar meu codigo no controller

[code]public void gerarPDF(ServletContext scontext, List lista)
{
HashMap<String, String> hm = new HashMap<String, String>();
hm.put(“NOME_CLIENTE”, “CLIENTE TESTE”);
try
{
String caminho = scontext.getRealPath("./rel/relSintetico.jrxml");
JRDataSource jrds = new JRBeanCollectionDataSource(lista);
JasperReport jasperReport = JasperCompileManager.compileReport(caminho);
JasperPrint print = JasperFillManager.fillReport(
jasperReport,
hm,
jrds);

		JRDesignStyle unicodeChars = new JRDesignStyle();
        unicodeChars.setName("Unicode_Chars");
        unicodeChars.setFontName("Arial");
        unicodeChars.setFontSize(12);
        unicodeChars.setItalic(true);
        unicodeChars.setPdfFontName("Arial");
        unicodeChars.setPdfEncoding("UTF-8");
        print.addStyle(unicodeChars);

		JasperViewer.viewReport(print, true);

	}
	catch (JRException e)
	{
		e.printStackTrace();
		System.exit(1);
	}
	catch (Exception e)
	{
		e.printStackTrace();
		System.exit(1);
	}
}[/code]

Falae javaCBA, tudo bom ?

É o seguinte cara, voce está enviando as variaveis da forma correta, mas no seu relatório você esqueceu de setar o tipo dos seus parametros, ao menos aparenta isso.

Assim como diz o erro

[code]# Cannot cast from Date to String

value = (java.lang.String)(new java.util.Date()); //$JR_EXPR_ID=10$ [/code]

você está enviando um Date em um String …

para resolver isso, selecione o parametro correspondente, vá até propriedades e altere a field class para o que seja correspondente, nesse caso java.util.Date.

Erros com “cast”…
Será que você não mudou a Linguagem do relatório de “Groovy” pra “Java”?
Se não da uma olhada nos valores que você esta jogando nos campos string :slight_smile:

oi Gerva, era isso mesmo. EU tinha mudado a linguagem sim. Voltei e deu certo.

Agora to com outro erro, ele não acha meus beans. Sendo que no classpath estou apontando para o caminho certo (onde estao meu .class):

23/09/2011 09:02:36 net.sf.jasperreports.engine.component.ComponentsEnvironment findComponentBundles AVISO: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : construct_codigo at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123) at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96) at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100) at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:821) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:785) at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1482) at net.sf.jasperreports.engine.fill.JRHorizontalFiller.fillReport(JRHorizontalFiller.java:134)

Nunca tinha visto esse erro, mas a julgar pelo aviso de arquivo duplicado: “Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components”, acho que ele leu um arquivo corrompido ou nem leu…

A questão de Groovy e Java, você pode deixar Java mas terá que adicionar conversores de tipos