Aplicação trava na geração do relatório

1 resposta
mnatan.brito

Olá galera, estou com um problema chato aqui! Tenho uma aplicação Web que deve gerar alguns relatórios a partir de ManagedBeans. Até aqui tudo ok! O problema é que a rotina de geração do relatório está travando a aplicação. Quando a linha 10 é executada, um aplicativo chamado org.apache.catalina.startup.Bootstrap abre no Dock. Quando a linha 11 é executada, o método fillReport não retorna e a aplicação trava e não responde mais!
Código do bean:

public void gerarRelatorio(ActionEvent e) throws SQLException, JRException, IOException {

        try {
            Class.forName("com.mysql.jdbc.Driver"); // 1
            FacesContext contexto =  FacesContext.getCurrentInstance(); // 2
            String caminhoRelatorio = contexto.getExternalContext().getRealPath("/resources/relatorios/rel_participantes.jasper"); // 3
            Map<String, Object> params = new HashMap<String, Object>(); // 4
            Properties connectionProps = new Properties(); // 5
            Connection conexaoBanco = null; // 6
            params.put("ID_EVENTO", eventoSelecionado.getIdtEvento()); // 7
            connectionProps.put("user", "root"); // 8
            conexaoBanco = DriverManager.getConnection("jdbc:mysql://localhost:3306/SisEventosDB", connectionProps); // 9
            JasperReport rel = (JasperReport) JRLoader.loadObject(caminhoRelatorio); // 10
            JasperPrint print = JasperFillManager.fillReport(rel, params, conexaoBanco); // 11
            ((HttpServletResponse)contexto.getExternalContext().getResponse()).addHeader("Content-disposition", "attachment; filename=Relatorio_Presenca.pdf");
            JasperExportManager.exportReportToPdfStream(print, FacesContext.getCurrentInstance().getExternalContext().getResponseOutputStream()); // 12
            MessageHelper.showGlobalMessage(">> " +  rel.getFields().length, FacesMessage.SEVERITY_INFO); // 13
        } catch (ClassNotFoundException ex) {
        }


    }

Xml do relatório:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="SisEventos_RelatorioEvento" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<parameter name="ID_EVENTO" class="java.lang.Integer" isForPrompting="false">
		<defaultValueExpression><![CDATA[1]]></defaultValueExpression>
	</parameter>
	<queryString>
		<![CDATA[select idt_evento, nme_evento, dta_inicio_evento, dta_termino_evento, nme_participante, eml_participante from tb_inscricao as t1
inner join tb_evento as t2 on t1.cod_evento = t2.idt_evento
inner join tb_participante as t3 on t1.cod_participante = t3.idt_participante
where t1.cod_evento = $P{ID_EVENTO}
group by t2.nme_evento order by t2.dta_inicio_evento asc;]]>
	</queryString>
	<field name="idt_evento" class="java.lang.Integer"/>
	<field name="nme_evento" class="java.lang.String"/>
	<field name="dta_inicio_evento" class="java.sql.Timestamp"/>
	<field name="dta_termino_evento" class="java.sql.Timestamp"/>
	<field name="nme_participante" class="java.lang.String"/>
	<field name="eml_participante" class="java.lang.String"/>
	<group name="gEventos">
		<groupExpression><![CDATA[$F{nme_evento}]]></groupExpression>
		<groupHeader>
			<band height="42">
				<rectangle>
					<reportElement x="25" y="21" width="530" height="20" forecolor="#666666" backcolor="#666666"/>
				</rectangle>
				<staticText>
					<reportElement x="35" y="21" width="267" height="20" forecolor="#FFFFFF"/>
					<textElement textAlignment="Left" verticalAlignment="Middle"/>
					<text><![CDATA[Participante]]></text>
				</staticText>
				<staticText>
					<reportElement x="302" y="21" width="186" height="20" forecolor="#FFFFFF"/>
					<textElement textAlignment="Left" verticalAlignment="Middle"/>
					<text><![CDATA[E-mail]]></text>
				</staticText>
				<staticText>
					<reportElement x="488" y="21" width="68" height="20" forecolor="#FFFFFF"/>
					<textElement textAlignment="Left" verticalAlignment="Middle"/>
					<text><![CDATA[Presente]]></text>
				</staticText>
				<textField isStretchWithOverflow="true">
					<reportElement x="0" y="1" width="270" height="20"/>
					<textElement>
						<font size="14" isBold="true"/>
					</textElement>
					<textFieldExpression><![CDATA["Evento: " + $F{nme_evento}]]></textFieldExpression>
				</textField>
				<line>
					<reportElement x="270" y="12" width="280" height="1"/>
				</line>
			</band>
		</groupHeader>
		<groupFooter>
			<band height="50"/>
		</groupFooter>
	</group>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="60" splitType="Stretch">
			<rectangle>
				<reportElement x="0" y="0" width="200" height="60" forecolor="#E6E6E6" backcolor="#E6E6E6"/>
			</rectangle>
			<staticText>
				<reportElement x="0" y="0" width="200" height="60" forecolor="#666666" backcolor="#FFFFFF"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="Arial" size="30"/>
				</textElement>
				<text><![CDATA[SisEventos]]></text>
			</staticText>
			<staticText>
				<reportElement x="200" y="35" width="355" height="25"/>
				<textElement textAlignment="Right" verticalAlignment="Middle">
					<font fontName="Arial" size="18" isBold="true" isUnderline="false"/>
				</textElement>
				<text><![CDATA[Relatório de Participantes dos Eventos]]></text>
			</staticText>
			<line>
				<reportElement x="200" y="59" width="355" height="1"/>
			</line>
		</band>
	</title>
	<pageHeader>
		<band height="14" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band splitType="Stretch"/>
	</columnHeader>
	<detail>
		<band height="20" splitType="Stretch">
			<rectangle>
				<reportElement x="25" y="0" width="530" height="20" forecolor="#E6E6E6" backcolor="#E6E6E6">
					<printWhenExpression><![CDATA[$V{COLUMN_COUNT}%2==0]]></printWhenExpression>
				</reportElement>
			</rectangle>
			<textField isStretchWithOverflow="true">
				<reportElement x="34" y="0" width="267" height="20"/>
				<textElement textAlignment="Left" verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA[$F{nme_participante}]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement x="302" y="0" width="185" height="20"/>
				<textElement verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA[$F{eml_participante}]]></textFieldExpression>
			</textField>
			<rectangle radius="10">
				<reportElement x="500" y="2" width="15" height="15"/>
			</rectangle>
		</band>
	</detail>
	<columnFooter>
		<band splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="20" splitType="Stretch">
			<textField>
				<reportElement x="355" y="0" width="200" height="20"/>
				<textElement textAlignment="Right" verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA["Página "+$V{PAGE_NUMBER}+" de "+ $V{PAGE_NUMBER}]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true" pattern="EEE, dd MMM yyyy - HH:mm:ss" isBlankWhenNull="true">
				<reportElement x="0" y="0" width="200" height="20"/>
				<textElement verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA["Impresso em: " + new java.util.Date().toLocaleString()]]></textFieldExpression>
			</textField>
			<line>
				<reportElement x="0" y="0" width="555" height="1"/>
			</line>
		</band>
	</pageFooter>
	<summary>
		<band splitType="Stretch"/>
	</summary>
</jasperReport>

1 Resposta

mnatan.brito

Alguém se habilita? auhsauhs… Estou precisando urgente de uma solução. Caso alguém tenha alguma dica ou link que eu possa estudar para tentar resolver…

Criado 24 de setembro de 2012
Ultima resposta 26 de set. de 2012
Respostas 1
Participantes 1