[Resolvido!] Problema com método imprimirRelatorio usando jasperreports

20 respostas
Kleber-rr

Olá pessoal, td bem?

Estou levando uma surra básica em jasperReports e preciso da ajuda de vcs. Meu bean que tem o método para impressão do relatorio está assim:
public class OrgaoGestorHandler {

	private String saida;
//...
	// MÉTODOS PARA IMPRIMIR RELATÓRIO
	private String getDiretorioReal(String diretorio) {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getDireitorioReal");
		return session.getServletContext().getRealPath(diretorio);
	}

	private String getContextPath() {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getContextPath");
		return session.getServletContext().getContextPath();
	}

	private void preenchePdf(JasperPrint print) throws JRException {
		// Pego o caminho completo do PDF desde a raiz
		saida = getDiretorioReal("/pdf/relatorio.pdf");
		// Exporto para PDF
		JasperExportManager.exportReportToPdfFile(print, saida);
		/*
		 * Jogo na vari�vel sa�da o nome da aplica��o mais o caminho para o PDF.
		 * Essa vari�vel ser� utilizada pela view
		 */
		saida = getContextPath() + "/pdf/relatorio.pdf";
	}

	public void imprimirRelatorio() {
		System.out.println("metodo de impressao");
		saida = null;
		String jasper = getDiretorioReal("/jasper/orgaogestor.jasper");
		try {

			// Mando o jasper gerar o relat�rio
			JasperPrint print = JasperFillManager.fillReport(jasper, null);
			// Gero o PDF
			preenchePdf(print);
			System.out.println("pdf gerado");

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro: " + e);

		}
	}
Na minha jsp, eu chamo o método assim:
//...
		<h:column>
			<f:facet name="header">
				<h:outputText value="Relatório"/>
			</f:facet>
			<center>
			<h:commandButton value="PDF" target="_blank" action="#{orgaogestorHandler.imprimirRelatorio}"/>
			
		</center>
		</h:column>
o erro que me retorna no console quando eu clico no commandButton acima é esse:
28/06/2010 11:47:47 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer getForComponent
WARNING: Unable to find component with ID nomeLabel in view.
Hibernate: 
    select
//...

Eae pessoal, o que pode ser??

Agradeço.

20 Respostas

rdmardegam

Como está seu select?
Aparentemente você está tentando pegar o valor de um campo em que não foi selecionado no select.

Abraço.

Kleber-rr

rdmardegam:
Como está seu select?
Aparentemente você está tentando pegar o valor de um campo em que não foi selecionado no select.

Abraço.

Estou tentando pegar a select através da session que já está aberta, seguindo um exemplo do Pablo Nóbrega.
Estou usando jsf, faceservlet, hibernate. Se vc tiver algum exemplo bacana, agradeço man… to apanhando nisso a um bom tempo…
Valeu.

Kleber-rr

Tentei passando o resultSet e deu o mesmo erro…

public String imprimirRelatorio() { System.out.println("metodo de impressao"); saida = null; String jasper = getDiretorioReal("jasper/orgaogestor.jasper"); JRDataSource jrds = new JRBeanCollectionDataSource(listOg); try { // Mando o jasper gerar o relat�rio JasperPrint print = JasperFillManager .fillReport(jasper, null, jrds); // Gero o PDF preenchePdf(print); System.out.println("pdf gerado");

EAe? Alguma luz?

UMC

“tenta” coloca a barra no início -> String jasper = getDiretorioReal("/jasper/orgaogestor.jasper");
no meu blog tem um exemplo de geração de relatórios
http://umcastec.blogspot.com/2010/04/gerar-relatorio-pdf-em-uma-servlet.html

vlw

rdmardegam

Amigo, já que não está conseguindo fazer desta maneira.

Tente retirar as conexoes e fazer com a passagem de parametros e coleções atraves do java para o Ireport.

Assim o Ireport será responsável por apenas exibir o relatorio e não tera nenhuma função de efetuar conexao ou querys.

Kleber-rr

rdmardegam:
Amigo, já que não está conseguindo fazer desta maneira.

Tente retirar as conexoes e fazer com a passagem de parametros e coleções atraves do java para o Ireport.

Assim o Ireport será responsável por apenas exibir o relatorio e não tera nenhuma função de efetuar conexao ou querys.

Amigão, tem algum exemplo pra mim dar uma olhada?? agradeço se tiver.

Kleber-rr

UMC:
“tenta” coloca a barra no início -> String jasper = getDiretorioReal("/jasper/orgaogestor.jasper");
no meu blog tem um exemplo de geração de relatórios
http://umcastec.blogspot.com/2010/04/gerar-relatorio-pdf-em-uma-servlet.html

vlw


Tinha a barra e eu tirei, pois vi em alguns posts que alguns não usam… mas tb não resolve. É como se o método dentro do bean não fosse chamado… todos os outros métodos funcionam, menos esse… :frowning:
O teu exemplo usa servlet, e eu to usando o facesServlet… Se eu instanciar outra servlet no meu projeto, não dá pau??

Vlw

L

Cara, primeira coisa ,vc esta com erros na sua pagina jsf ,veja o erro acima [size=18] com.sun.faces.renderkit.html_basic.HtmlBasicRenderer [/size] em algum lugar vc da sua pagina vc esta referenciando um componente com id=“nomeLabel” que naum existe, da um ctrl+f na pagina e busca este cara ai,pode ser isso que ta zicando a execucao da sua action.
:slight_smile:

UMC

Kleber-rr:
UMC:
“tenta” coloca a barra no início -> String jasper = getDiretorioReal("/jasper/orgaogestor.jasper");
no meu blog tem um exemplo de geração de relatórios
http://umcastec.blogspot.com/2010/04/gerar-relatorio-pdf-em-uma-servlet.html

vlw


Tinha a barra e eu tirei, pois vi em alguns posts que alguns não usam… mas tb não resolve. É como se o método dentro do bean não fosse chamado… todos os outros métodos funcionam, menos esse… :frowning:
O teu exemplo usa servlet, e eu to usando o facesServlet… Se eu instanciar outra servlet no meu projeto, não dá pau??

Vlw


acredito que não é bom se você fizer o teste!

vlw

rdmardegam

Amigo neste link tem um exemplo de como utilizar coleção para renderizar as informações no seu relatorio:

http://webcache.googleusercontent.com/search?q=cache:2esiHMNv7JoJ:www.furutani.com.br/site/MostrarArtigo.action%3Fcodigo%3D10+exemplo+ireport+com+JRBeanCollectionDataSource&cd=1&hl=pt-BR&ct=clnk&gl=br

Abraço.

Kleber-rr

lgweb:

o erro que me retorna no console quando eu clico no commandButton acima é esse:
view plaincopy to clipboardprint?

  1. 28/06/2010 11:47:47 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer getForComponent
  2. WARNING: Unable to find component with ID nomeLabel in view.
  3. Hibernate:
  4. select
    
  5. //…

28/06/2010 11:47:47 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer getForComponent WARNING: Unable to find component with ID nomeLabel in view. Hibernate: select //…

Cara, primeira coisa ,vc esta com erros na sua pagina jsf ,veja o erro acima [size=18] com.sun.faces.renderkit.html_basic.HtmlBasicRenderer [/size] em algum lugar vc da sua pagina vc esta referenciando um componente com id=“nomeLabel” que naum existe, da um ctrl+f na pagina e busca este cara ai,pode ser isso que ta zicando a execucao da sua action.
:)


Amigo, esse erro eu já corrigi. Realmente faltava eu nomear meu form como “nomeLabel” (não sei pq isso, pois em nenhum método e em nenhum lugar eu utilizei esse nome e olha que eu varri o meu projeto todo atrás de nomeLabel e nada…). Eu achei que o meu método não funcionava por conta desse erro besta mas nao era…

Vlw

Kleber-rr
rdmardegam:
Amigo neste link tem um exemplo de como utilizar coleção para renderizar as informações no seu relatorio:

[url]http://webcache.googleusercontent.com/search?q=cache:2esiHMNv7JoJ:www.furutani.com.br/site/MostrarArtigo.action%3Fcodigo%3D10+exemplo+ireport+com+JRBeanCollectionDataSource&cd=1&hl=pt-BR&ct=clnk&gl=br[/url]

Abraço.

Cara, dei uma olhada no método lá do exemplo que vc me passou, e nada... Estou começando a achar que está tendo algum problema com o facesServlet ou com o facelets. Olha como está meu xhtml que me retorna a lista com os orgaosgestores:
<f:view>
<body>
	<h:form id="nomeLabel">		
	<rich:dataTable value="#{orgaogestorHandler.orgaosGestoresByNome}" var="f" rendered="#{not empty orgaogestorHandler.orgaosGestoresByNome}" rows="5" id="orgaosGestoresByNome">
		<h:column>
			<f:facet name="header">
				<h:outputText value="Código"/>
			</f:facet>
				<h:outputText value="#{f.cod_orgaogestor}"/>
		</h:column>
		<h:column>
			<f:facet name="header">
				<h:outputText value="Nome"/>
			</f:facet>
				<h:outputText value="#{f.nome}"/>		
		</h:column>

		<h:column>
			<f:facet name="header">
				<h:outputText value="Relatório"/>
			</f:facet>
			<center>
			<h:commandButton value="PDF" id="pdf" actionListener="#{orgaogestorHandler.imprimirRelatorio}"/>
				</center>
		</h:column>
				<f:facet name="footer">
			<rich:datascroller/>
		</f:facet>
		</rich:dataTable>
		</h:form>
</body>
</f:view>
meu método no bean está assim:
private String getDiretorioReal(String diretorio) {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getDireitorioReal");
		return session.getServletContext().getRealPath(diretorio);
	}


	private String getContextPath() {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getContextPath");
		return session.getServletContext().getContextPath();
	}


	private void preenchePdf(JasperPrint print) throws JRException {
		// Pego o caminho completo do PDF desde a raiz
		saida = getDiretorioReal("/pdf/relatorio.pdf");
		// Exporto para PDF
		JasperExportManager.exportReportToPdfFile(print, saida);
		saida = getContextPath() + "/pdf/relatorio.pdf";
	}

	public void imprimirRelatorio() {
		saida = null;
		System.out.println("metodo de impressao");
		String jasper = getDiretorioReal("/jasper/orgaogestor.jasper");
		Connection conexao = null;
		try {
			// Abro a conex&#65533;o com o banco que ser&#65533; passada para o JasperReports
			conexao = new Conexao().getConexao();
			JRResultSetDataSource jrds = new JRResultSetDataSource(
					getResultSet(conexao));
			// Mando o jasper gerar o relat&#65533;rio
			JasperPrint print = JasperFillManager
					.fillReport(jasper, null, jrds);
			// Gero o PDF
			preenchePdf(print);
			System.out.println("pdf gerado");

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro: " + e);
		} finally {
			try {
				// // Sempre mando fechar a conex&#65533;o, mesmo que tenha dado erro
				if (conexao != null)
					conexao.close();
			} catch (Exception e) {

			}
		}

	}


	private ResultSet getResultSet(Connection conexao) throws SQLException,
			ClassNotFoundException {
		Statement stmt = conexao.createStatement();

		ResultSet rs = stmt
				.executeQuery("SELECT internet.tipo AS internet_tipo,  "
						+ "nivelgestao.tipo AS gestao_tipo, *, FROM orgaogestor, municipiosrr, nivelgestao, estados, internet");

		return rs;
	}
meu web.xml está assim (de repente, pode ser algum problema nele...):
<?xml version="1.0"?>
<web-app version="2.5" 
                xmlns="http://java.sun.com/xml/ns/javaee"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm </welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <context-param>
   <param-name>javax.faces.DEFAULT_SUFFIX </param-name>
   <param-value>.xhtml </param-value>
  </context-param>
 <context-param>
   <param-name>facelets.DEVELOPMENT </param-name>
   <param-value>true </param-value>
</context-param>
<context-param>
   <param-name>com.sun.faces.validateXml </param-name>
   <param-value>false </param-value>
</context-param>
   <context-param>
   <param-name>com.sun.faces.verifyObjects </param-name>
   <param-value>true </param-value>
</context-param>




  <!-- Configura onde salvar o estado dos componentes. O padrao é server -->
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>

  <!-- Configura o filtro obrigatorio do Ajax4Jsf -->
  <filter>
    <display-name>Ajax4jsf Filter</display-name>
    <filter-name>ajax4jsf</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
  </filter>
  
  <filter-mapping>
    <filter-name>ajax4jsf</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
  </filter-mapping>

	<filter>
		<filter-name>HibernateSessionFilter</filter-name>
		<filter-class>br.gov.rr.setrabes.util.HibernateSessionFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>HibernateSessionFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


  <!-- Configura a servlet do JSF. -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
	<url-pattern>*.jsf</url-pattern>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  
  <!-- SERVLET PARA IREPORTS
 <servlet>
        <servlet-name>ServletCategoria</servlet-name>
        <servlet-class>br.gov.rr.setrabes.ireports.ServletCategoria</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>VisualizaRelatorio</servlet-name>
        <servlet-class>br.gov.rr.setrabes.ireports.VisualizaRelatorio</servlet-class>
    </servlet>
<servlet-mapping>
        <servlet-name>ServletCategoria</servlet-name>
        <url-pattern>/ServletCategoria</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>VisualizaRelatorio</servlet-name>
        <url-pattern>/VisualizaRelatorio</url-pattern>
    </servlet-mapping> -->    
  
  
  	 <context-param>
		<param-name>facelets.SKIP_COMMENTS</param-name>
		<param-value>true</param-value>
	</context-param>

    <!-- Ativando o Skin -->
    <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
    </context-param>
    
      <!-- Define a skin do richfaces. Ha varias opcoes -->
  <context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <!--<param-value>.xhtml</param-value> -->
    <!--<param-value>DEFAULT</param-value>-->
    <!--<param-value>plain</param-value>-->
    <!--<param-value>emeraldTown</param-value>-->
	<param-value>blueSky</param-value>
<!--    <param-value>wine</param-value>-->
<!--    <param-value>japanCherry</param-value>-->
    <!--<param-value>ruby</param-value>-->
    <!--<param-value>classic</param-value>-->
<!--    <param-value>deepMarine</param-value>-->
  </context-param>
  
    <context-param>
		<param-name>org.ajax4jsf.SKIN</param-name>
		<param-value>blueSky</param-value>
	</context-param>
    
    
    
<!-- Definindo e mapeando os filtros do RichFaces -->
    <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>richfaces</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    <!-- Fim da configuracao do RIchFaces -->
    
<!-- Definindo e mapeando os filtros do RichFaces -->
<context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>

	<context-param>
		<param-name>facelets.REFRESH_PERIOD</param-name>
		<param-value>1</param-value>
	</context-param>

	<context-param>
		<param-name>facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE</param-name>  
		<param-value>false</param-value>  
	</context-param> 



</web-app>
Eae, o que vc acha?? Vlw
Kleber-rr

Pessoal, consegui colocar pra funcionar, removendo o <h:form> da pagina xhtml e corrigindo a ActionListener para Action.
Funcionou perfeitamente.

O que eu preciso agora é o seguinte: na minha pagina xhtml, ele me traz o resultado com uma lista que eu pesquisei através de um rich:dataTable. O que eu preciso é que seja exibido o relatório referente àquele id. Eu sei que em um método com actionEvent dá pra instanciar um parametro para selecionar àquele id (eu já utilizei no método de alterar e excluir...). Como eu posso fazer isso dentro do meu método String imprimirRelatório??? segue o método abaixo:
public String imprimirRelatorio() {
		saida = null;
		System.out.println("metodo de impressao");
		String jasper = getDiretorioReal("/jasper/orgaogestor2.jasper");
		Connection conexao = null;
		try {


			// Abro a conex&#65533;o com o banco que ser&#65533; passada para o JasperReports
			conexao = new Conexao().getConexao();
			JRResultSetDataSource jrds = new JRResultSetDataSource(
					getResultSet(conexao));

			// Mando o jasper gerar o relat&#65533;rio
			JasperPrint print = JasperFillManager
					.fillReport(jasper, null, jrds);
			// Gero o PDF
			preenchePdf(print);
			System.out.println("pdf gerado");

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro: " + e);
		} finally {
			try {
				// // Sempre mando fechar a conex&#65533;o, mesmo que tenha dado erro
				if (conexao != null)
					conexao.close();
			} catch (Exception e) {

			}
		}

		return "exibeRelatorio";

	}

//MÉTODO QUE EU UTILIZO PARA ALTERAR A LINHA DE INFORMAÇÃO NA TABELA... note que eu uso actionEvent e eu estipulo um parâmetro...
	public void escolheOrgaoGestor(ActionEvent event) {
		UIComponent link = event.getComponent();
		UIParameter param = (UIParameter) link.findComponent("editCod");
		Long id = (Long) param.getValue();

		Session session = HibernateUtil.currentSession();
		Dao&lt;OrgaoGestor&gt; dao = new Dao&lt;OrgaoGestor&gt;(session, OrgaoGestor.class);
		this.orgaogestor = dao.load(id);
	}

Valeu.

Kleber-rr

Eae pessoal, alguma ajuda nisso??

Vlw

Kleber-rr

Eae, ninguem??

Kleber-rr

???

Kleber-rr
Pessoal, fiz um teste para para ver se minha ultima alteração estava pegando o id do objeto para enviar ao jasperreports e ficou assim:
public String imprimirRelatorio2(ActionEvent event) {

		// pegar objeto com actionEvent
		UIComponent link = event.getComponent();
		UIParameter parametro = (UIParameter) link.findComponent("printCod");
		Long id = (Long) parametro.getValue();

		// parametros
		Map param = new HashMap();
		param.put("codOg", id);
		System.out.println("codOg= " + id); //PARA VER SE REALMENTE PEGA O ID DO OBJETO

		saida = null;
		System.out.println("metodo de impressao");
		String jasper = getDiretorioReal("/jasper/orgaogestor2.jasper");
		Connection conexao = null;
		try {

			// Abro a conex&#65533;o com o banco que ser&#65533; passada para o JasperReports
			conexao = new Conexao().getConexao();
			JRResultSetDataSource jrds = new JRResultSetDataSource(
					getResultSet(conexao));

			// Mando o jasper gerar o relat&#65533;rio
			JasperPrint print = JasperFillManager.fillReport(jasper, param,
					jrds);

			// Gero o PDF
			preenchePdf(print);
			System.out.println("pdf gerado");

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro: " + e);
		} finally {
			try {
				// // Sempre mando fechar a conex&#65533;o, mesmo que tenha dado erro
				if (conexao != null)
					conexao.close();
			} catch (Exception e) {

			}
		}

		return "exibeRelatorio";

	}
na pagina xhtml ficou assim:
&lt;h:commandLink value="PDF" id="pdf" actionListener="#{orgaogestorHandler.imprimirRelatorio2}"/&gt;
			&lt;f:param id="printCod" name="cod" value="#{f.cod_orgaogestor}"/&gt;
O resultado no console foi:
Hibernate: 
    select
...
codOg= 30
metodo de impressao
getDireitorioReal
conexao relatorio
getDireitorioReal
getContextPath
pdf gerado

Como pode ver, ele carrega o método, passa o parametro mas na prática, naum acontece nada... o relatorio naum é exibido, e na página acontece um refresh.
O que pode ser???

Agradeço.

Kleber-rr
Resolvido. Ficou assim:
public String imprimirRelatorio(ActionEvent event) throws Exception {

		// pegar objeto com actionEvent
		UIComponent link = event.getComponent();
		UIParameter parametro = (UIParameter) link.findComponent("printCod");
		Long id = (Long) parametro.getValue();
		saida = null;
		System.out.println("metodo de impressao");
		String jasper = getDiretorioReal("/jasper/orgaogestor2.jasper");
		Connection conexao = null;
		try {
			Connection con = new Conexao().getConexao();
			Statement stm = con.createStatement();
			String query = "SELECT internet.tipo AS internet_tipo, nivelgestao.tipo AS gestao_tipo, * FROM orgaogestor, municipiosrr, nivelgestao, estados, internet where cod_orgaogestor="+ id;
			ResultSet rs = stm.executeQuery(query);
			JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

			// parametros
			Map map = new HashMap();
			map.put("QUERY", con);

			// Mando o jasper gerar o relat&#65533;rio
			JasperPrint rel = JasperFillManager.fillReport(jasper, map, jrRS);

			// exibindo o pdf para impressao
			JasperViewer.viewReport(rel, false);
		} catch (JRException e) {
			e.printStackTrace();

		} finally {
			try {
				// // Sempre mando fechar a conex&#65533;o, mesmo que tenha dado erro
				if (conexao != null)
					conexao.close();
			} catch (Exception e) {

			}
		}

		return "exibeRelatorio";

	}
O problema é que ele visualiza o relatorio, mas se eu colocar o método para imprimir em pdf, ele dá um refresh na página e naum exporta... alguma dica??

Valeu.

Kleber-rr
O que faltou para a impressao funcionar no método ActionEvent foi isso:
// exportando o pdf
			System.out.println("pdf gerado");
			ByteArrayOutputStream output = new ByteArrayOutputStream();
			JasperExportManager.exportReportToPdfStream(rel, output);
			response.setContentType("application/pdf");
			response.addHeader("Content-Disposition",
					"attachment;filename=relatorio" + id + ".pdf");
			response.setContentLength(output.size());

			servletOutputStream.write(output.toByteArray(), 0, output.size());
			servletOutputStream.flush();
			servletOutputStream.close();
			facesContext.responseComplete();
valeu pessoal.
juniorsatanas

Control C + Control V

Ai eu vou para Galera !

Criado 28 de junho de 2010
Ultima resposta 5 de ago. de 2010
Respostas 20
Participantes 5