[RESOLVIDO] Erro ao gerar relatório xls Ireport

Pessoal,

Estou com problema para gerar relatório em xls, o estranho é se gero em pdf funciona normalmente.

Exception:

net.sf.jasperreports.engine.JRException: Byte data not found at : logo1.jpg
	at net.sf.jasperreports.repo.RepositoryUtil.getBytes(RepositoryUtil.java:205)
	at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:141)
	at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:498)
	at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:441)
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:468)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:327)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:263)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
	at ServletReport.service(ServletReport.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Relatório:

		if (tipoRelatorio.equals("xls")) {

			try {

				JasperDesign desenho = JRXmlLoader
						.load(sc
								.getRealPath("WEB-INF/report/"+acao+".jrxml"));

				// compila o relatório
				JasperReport relatorio1 = JasperCompileManager
						.compileReport(desenho);

				JasperPrint impressao = JasperFillManager.fillReport(
						relatorio1, parameters, jrRS);

				JRXlsExporter exporter = new JRXlsExporter();
				ByteArrayOutputStream xlsReport = new ByteArrayOutputStream();
				exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT,
						impressao);
				exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,
						xlsReport);
				exporter
						.setParameter(
								JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
								Boolean.TRUE);
				exporter.setParameter(
						JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
						Boolean.TRUE);
				exporter.setParameter(
						JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
						Boolean.TRUE);
				exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME,
						"c:/relatorio.xls");

				exporter.exportReport();
				byte[] bytes = xlsReport.toByteArray();
				response.setContentType("application/vnd.ms-excel");
				response.setContentLength(bytes.length);
				xlsReport.close();
				OutputStream ouputStream = response.getOutputStream();
				ouputStream.write(bytes, 0, bytes.length);
				ouputStream.flush();
				ouputStream.close();

			} catch (Exception e) {

				e.printStackTrace();
			}

		}

		if (tipoRelatorio.equals("pdf")) {
			
			reportFile = new File(sc
					.getRealPath("WEB-INF/report/"+acao+".jasper"));


			byte[] bytes = null;

			try {
				bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
						parameters, jrRS);

			} catch (JRException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			if (bytes != null && bytes.length > 0) {
				response.setContentType("application/pdf");
				response.setContentLength(bytes.length);
				ServletOutputStream ouputStream = response.getOutputStream();
				ouputStream.write(bytes, 0, bytes.length);
				ouputStream.flush();
				ouputStream.close();
			}

Já alterei a propriedade da imagem e continua com o mesmo problema, parece que não acha a imagem!

Pessoal,

Ainda não conseguir entender poque o pdf funciona e o xls não!

Como você passa o logo1.jpg para o relatório? como stream, byte array, ou passa um caminho fixo tipo c:\logo1.jpg?
Dê uma olhada neste problema parecido: http://www.guj.com.br/java/249169-erro-report-por-causa-imagem—nao-possivel-gerar-relatorio

No jrxml defino :


<image>
				<reportElement x="0" y="4" width="128" height="74"/>
				<imageExpression><![CDATA["logo1.jpg"]]></imageExpression>
			</image>

[quote=rfogo]
No jrxml defino :

[code]

[/code][/quote]
No projeto em que trabalhei nós passávamos o PATH absoluto da imagem como parametro:

<image> <reportElement x="0" y="4" width="128" height="74"/> <imageExpression><![CDATA[$P{PATH}"/logo1.jpg"]]></imageExpression> </image>

Isso que tava faltando.

Vlw!

[quote=rfogo]Isso que tava faltando.

Vlw![/quote]
Que bom que ajudou, altera o titulo para “[Resolvido]”