Erro aon tentar acessar método de um bean em página .xhtml

2 respostas
M

Pessoal,

Dada a seguinte classe

package br.ufpb.nti.diploma.bean;
...
/* varios imports*/
...
public class ConsultaDiplomaBean {
...
public boolean chamarRelatorio() {
		 
     String caminhoRelJasper = "ufpb/nti/diploma/ireport/jasper/Teste3.jasper";
         
      InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper)
		
       // Parametros do relatorios
       Map parametros = new HashMap();
       parametros.put("situacao", 1);
         
         try {
         
        	 GerarPDF gera = new GerarPDF(); 
        	 try {
			
                        gera.geraPDFaqui(relJasper, parametros);
		        return true;
				
		  } catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return false;
			}      	  
        	 
         } catch (IOException io) {
      	 
        	 return false;   
         } catch (SQLException e) {
        	 
        	 return false;	 
         }
 	 
     }
...
}

o seguinte faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xi="http://www.w3.org/2001/XInclude" 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-facesconfig_1_2.xsd">
...
<managed-bean>
	<managed-bean-name>consultaDiplomaBean</managed-bean-name>
	<managed-bean-class>br.ufpb.nti.diploma.bean.ConsultaDiplomaBean</managed-bean-class>
	<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>

e a seguinte página .xhtml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j">
...
<rich:datascroller for="dipTable" maxPages="20" align="center" style="margin-top:4px" rendered="#{consultaDiplomaBean.verTabela}"/>
				<div>
					<h:commandButton action="#{consultaDiplomaBean.chamarRelatorio}" value="Gerar Relatorio" rendered="true" style="margin-left:300px; margin-top:10px"/>
				</div>
			
		</h:form>
	</ui:define>
</ui:composition>
</html>

quando tento chamar o método “chamarRelatorio()” na página acima, aparece a seguinte mensagem de erro no Tomcat

HTTP Status 500 -
type Exception report

message
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: #{consultaDiplomaBean.chamarRelatorio}: java.lang.NullPointerException
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
...

Não estou entendendo por qual razão a chamada do método na página associada ao bean está causando a exceção supracitada ???

2 Respostas

felipe.sodre

Seguinte cara metodos de action tem por padrão retornar uma string contendo a regra de navegação definida no faces exemplo

public String chamarRelatorio(){

return “alguma regra de navegação”
}

agora vc pode criar um atributo boolean

boolean isAlgumaCoisa;

usar o actionListener ao inves do action

public void chamarRelatorio(ActionEvent e){

isAlgumaCoisa = true

}

por exemplo

flws

felipe.sodre

Cara to com um problema em outro topico so precisava que alguem com richfaces configurado fizesse um teste para mim eh bem simples tem como vc me da uma moral?

abraço

olha o topico

http://www.guj.com.br/posts/list/205944.java

Criado 5 de maio de 2010
Ultima resposta 5 de mai. de 2010
Respostas 2
Participantes 2