AVISO: Não foi possível encontrar o componente com a ID guia na exibição

3 respostas
S

Bom galera estou tentando gerar um relatorio pdf utilizando jasperreports porem está dando o seguinte erro:

[color=red]... 65 more 25/03/2013 17:09:46 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer getForComponent AVISO: Não foi possível encontrar o componente com a ID guia na exibição.[/color]

meu codigo é o seguinte:

public void toxicologicoPDF(){
    	RelatorioUtil relatorioUtil = new RelatorioUtil();
    	try {
		byte[] bytes = relatorioUtil.geraToxicologico(new HashMap<String, Object>(), "", "", laudoSelecionado.getIdLaudo());
		FacesContext fc = FacesContext.getCurrentInstance();
		 HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();
         response.setHeader( "Content-disposition", "attachment;filename=\"toxicologico_" + laudoSelecionado.getIdLaudo() + ".pdf\"" );
        
         response.setContentType( "application/pdf" );

         response.setContentLength( bytes.length );
         ServletOutputStream ouputStream = response.getOutputStream();
         ouputStream.write( bytes, 0, bytes.length );
         ouputStream.flush();
         ouputStream.close();
         fc.renderResponse();
         fc.responseComplete();
         
		} catch (UtilException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
public byte[] geraToxicologico(HashMap<String, Object> parametrosRelatorio, String nomeRelatorioJasper, String nomeRelatorioSaida, int idLaudo) throws UtilException {
		//StreamedContent arquivoRetorno = null;
		byte[] bytes;
		parametrosRelatorio = new HashMap<String, Object>();
		parametrosRelatorio.put("idLaudo", idLaudo);
		nomeRelatorioJasper = nomeRelatorioSaida = "toxicologico";

		try {
			FacesContext context = FacesContext.getCurrentInstance();
			String caminhoRelatorio = context.getExternalContext().getRealPath("relatorio");
			String caminhoArquivoJasper = caminhoRelatorio + File.separator + nomeRelatorioJasper + ".jasper";
			
			
			JasperReport relatorio = (JasperReport) JRLoader.loadObject(caminhoArquivoJasper);
			bytes = JasperRunManager.runReportToPdf(relatorio, parametrosRelatorio, HibernateUtil.getSessionFactory().getCurrentSession().connection());
						
		} catch (JRException e) {
			throw new UtilException("Nao foi possivel gerar o relatorio.", e);
		} 
			return bytes;
	}

3 Respostas

C

poste sua pagina xhtml, acho que é que esta o erro pelo pedaço do log que postou deve ser na view…

S
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:composition template="/templates/themeMenu.xhtml">
        <ui:define name="conteudo">
            <p:layoutUnit id="center" position="center" >
                <p:panel id="panelEdicaoToxicologicoPreliminar" header="Cadastro de Toxicologico Preliminar" toggleable="true">
                    <h:form id="edicao">
                        <p:growl autoUpdate="true"/>
                        <h:inputHidden value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.idLaudo}"/>
                        <h:panelGrid columns="2">
                        
                            <h:outputLabel value="Guia Pericial: " for="guia"/>
                			<p:selectOneMenu id="guiaPericial" value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.guiaPericial}" required="true"
                                 requiredMessage="Campo Guia é obrigatorio." converter="guiaConverter"
                                 style="width:250px">
                                 <p:ajax />
                    			 <f:selectItem itemLabel="Selecione..." itemValue="" />
                    			 <f:selectItems value="#{guiaPericialBean.ativa}" var="guiaPericial"
                                    itemLabel="#{guiaPericial.numeroGuia} - #{guiaPericial.tipoExame.descricaoExame}" itemValue="#{guiaPericial}"/>
                			</p:selectOneMenu>                                                                           
                            
                            <h:outputLabel  value="Data da Ocorrência: " for="dataOcorrencia"/>
                            <p:calendar value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.dataOcorrencia}" id="dataOcorrencia" required="true" requiredMessage="Campo Data da Ocorrência em branco!">
                            </p:calendar>
                            
                            <h:outputLabel  value="Referência: " for="referencia"/>
                            <p:inputText id="referencia" label="Referência" value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.referencia}" size="50" maxlength="150"
                                         required="false" requiredMessage="Campo Referência inválido!">
                            </p:inputText>
                            
                            <h:outputLabel  value="Local do Exame: " />
                            <p:inputText id="localExame" label="Local do Exame" value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.localExame}" size="50" maxlength="150"
                                         required="false" requiredMessage="Campo Local do Exame inválido!">
                            </p:inputText>                            
                                                                  
                            <h:outputLabel value="Substancia: " for="substancia"/>
                            <p:selectOneMenu id="substancia" value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.involucro.substancia}" required="true"
                                             requiredMessage="Campo Substancia é obrigatorio." converter="substanciaConverter"
                                             style="width:160px">
                                <f:selectItem itemLabel="Selecione..." itemValue="" />
                                <f:selectItems value="#{substanciaBean.lista}" var="substancia"
                                               itemLabel="#{substancia.tipoSubstancia}" itemValue="#{substancia}"/>
                            </p:selectOneMenu>
                                                       
                            <h:outputLabel value="Quantidade: " for="quantidade" />
								<p:inputText id="quantidade" label="Quantidade"
									value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.involucro.quantidade}"
									size="20" required="true">
									<f:convertNumber minFractionDigits="1"/>
								</p:inputText>
							<h:outputLabel value="Peso (gramas): " for="peso" />
								<p:inputText id="peso" label="Peso"
									value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.involucro.peso}"
									size="20" required="true">
									<f:convertNumber pattern="#0.000"/>
								</p:inputText>
                            <h:outputLabel value="Tipo do Involucro: " for="tipoInvolucro" />
							<p:selectOneMenu id="tipoInvolucro"
								value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.involucro.tipoInvolucro}"
								required="true"
								requiredMessage="Campo Tipo de Involucro é obrigatorio."
								converter="tipoInvolucroConverter" style="width:160px">
								<f:selectItem itemLabel="Selecione..." itemValue="" />
								<f:selectItems value="#{tipoInvolucroBean.lista}"
									var="tipoInvolucro" itemLabel="#{tipoInvolucro.descricao}"
									itemValue="#{tipoInvolucro}" />
							</p:selectOneMenu>
                            <h:outputLabel value="Cor: " for="cor" />
							<p:selectOneMenu id="cor"
								value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.involucro.cor}"
								required="true"
								requiredMessage="Campo Cor é obrigatorio."
								converter="corConverter" style="width:160px">
								<f:selectItem itemLabel="Selecione..." itemValue="" />
								<f:selectItems value="#{corBean.lista}"
									var="cor" itemLabel="#{cor.descricao}"
									itemValue="#{cor}" />
							</p:selectOneMenu>
                                                     
                            <h:outputLabel value="Observação: " for="observacao"/>
                            <p:inputTextarea id="observacao" rows="5" cols="52" maxlength="255" autoResize="false" value="#{toxicologicoPreliminarBean.toxicologicoPreliminar.observacao}"/>
                    
                            <h:inputHidden/>
                            
                            <p:commandButton value="Salvar" actionListener="#{toxicologicoPreliminarBean.salvar()}" update=":edicao :listagem" icon="ui-icon-disk" />            
                        </h:panelGrid>
                    </h:form>
                </p:panel>

                <br/>

                <p:panel id="panelListagemToxicologicoPreliminar" header="Lista de Toxicologico Preliminar" toggleable="true">
                    <h:form id="listagem">
                        <p:dataTable value="#{toxicologicoPreliminarBean.lista}" var="toxicologicoPreliminar" rendered="#{!empty toxicologicoPreliminarBean.lista}" paginator="true" rows="10"  
                                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                     rowsPerPageTemplate="5,10,15">
                            <p:column>
                                <f:facet name="header">Laudo Número</f:facet>
                                #{toxicologicoPreliminar.idLaudo} - #{toxicologicoPreliminar.guiaPericial.numeroGuia}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Procêdencia</f:facet>
                                #{toxicologicoPreliminar.guiaPericial.procedencia.descricao}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Autoridade Requisitante</f:facet>
                                #{toxicologicoPreliminar.guiaPericial.autoridade.nome}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Destino do Laudo</f:facet>
                                #{toxicologicoPreliminar.guiaPericial.destino.nomeDestino}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Data da Ocorrência</f:facet>
                                <h:outputText value="#{toxicologicoPreliminar.dataOcorrencia}" >
                                	<f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy"/>
                                </h:outputText> 
                            </p:column>
                            <p:column>
                                <f:facet name="header">Referência</f:facet>
                                #{toxicologicoPreliminar.referencia}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Indiciado</f:facet>
                                #{toxicologicoPreliminar.guiaPericial.envolvido}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Substância / Descrição</f:facet>
                                #{toxicologicoPreliminar.involucro.substancia.tipoSubstancia} - #{toxicologicoPreliminar.involucro.substancia.descricao}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Quantidade Invólucro</f:facet>
                                <h:outputText value="#{toxicologicoPreliminar.involucro.quantidade}" >
                                	<f:convertNumber minFractionDigits="1"/>
                                </h:outputText> 
                            </p:column>
                            <p:column>
                                <f:facet name="header">Peso Invólucro</f:facet>
                                <h:outputText value="#{toxicologicoPreliminar.involucro.peso}" >
                                	<f:convertNumber minFractionDigits="3"/>
                                </h:outputText> 
                            </p:column>                                                                                 
                            <p:column>
                                <f:facet name="header">Usuario</f:facet>
                                #{toxicologicoPreliminar.usuario.nome}
                            </p:column>
                            <p:column headerText="Editar" style="text-align: center">
                                <p:commandLink update=":edicao">
                                    <h:graphicImage library="images" name="editar.png"/>
                                    <f:setPropertyActionListener target="#{toxicologicoPreliminarBean.toxicologicoPreliminar}" value="#{toxicologicoPreliminar}"/>                                    
                                </p:commandLink>
                            </p:column>
                            <p:column headerText="Excluir" style="text-align: center">
                                <h:commandLink action="#{toxicologicoPreliminarBean.excluir}"
                                               onclick="if (!confirm('Confirma a exclusão do Toxicologico Preliminar de número: #{toxicologicoPreliminar.idLaudo}?')) return false;">
                                    <f:ajax execute="@this" render=":listagem"/>
                                    <h:graphicImage library="images" name="excluir.png" style="border:0" />
                                    <f:setPropertyActionListener target="#{toxicologicoPreliminarBean.toxicologicoPreliminar}" value="#{toxicologicoPreliminar}" />
                                </h:commandLink>
                            </p:column>
                            <p:column headerText="PDF" style="text-align: center" >
                                <h:commandLink action="#{toxicologicoPreliminarBean.toxicologicoPDF()}">                               	
                                	<f:setPropertyActionListener target="#{toxicologicoPreliminarBean.laudoSelecionado}" value="#{toxicologicoPreliminar}" />                               	
                                	<h:graphicImage library="images" name="pdf.png" title="Imprimir PDF" />
                                </h:commandLink>	
                            </p:column>
                        </p:dataTable>
                    </h:form>
                </p:panel>

            </p:layoutUnit>
        </ui:define>
    </ui:composition>
</html>
S

amigo resolveu, o problema estava no .jasper que estava procurando as imagens em outro workspace

Criado 28 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 3
Participantes 2