Definindo valor de atributo não serializável

Estou desenvolvendo uma aplicação mas ela apresentou o seguinte stack trace:

java.lang.NullPointerException at financeiro.web.LancamentoBean.getListaAteHoje(LancamentoBean.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.el.BeanELResolver.getValue(BeanELResolver.java:302) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71) at com.sun.el.parser.AstValue.getValue(AstValue.java:116) at com.sun.el.parser.AstValue.getValue(AstValue.java:163) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219) at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106) at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:2226) at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.get(CompositeComponentAttributesELResolver.java:341) at javax.el.MapELResolver.getValue(MapELResolver.java:196) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71) at com.sun.el.parser.AstValue.getValue(AstValue.java:116) at com.sun.el.parser.AstValue.getValue(AstValue.java:163) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219) at com.sun.faces.application.ApplicationImpl.evaluateExpressionGet(ApplicationImpl.java:426) at com.sun.faces.facelets.tag.composite.InterfaceHandler.validateComponent(InterfaceHandler.java:176) at com.sun.faces.facelets.tag.composite.InterfaceHandler.apply(InterfaceHandler.java:122) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79) at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:148) at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:348) at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:185) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:99) at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:174) at com.sun.faces.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:392) at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:363) at com.sun.faces.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:104) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79) at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:304) at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:363) at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:342) at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:196) at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:151) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79) at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:148) at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:734) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:96) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:22) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 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:859) 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)

e no eclipse aparece a seguinte info:

23/04/2011 11:20:29 javax.faces.component.UIViewRoot$ViewMap put AVISO: Definindo valor de atributo não serializável em ViewMap (chave: lancamentoBean, classe do valor: financeiro.web.LancamentoBean).

será que tem alguma coisa errada com meu Bean?

[code]package financeiro.web;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import financeiro.categoria.Categoria;
import financeiro.conta.Conta;
import financeiro.lancamento.Lancamento;
import financeiro.lancamento.LancamentoRN;
import financeiro.web.util.ContextoUtil;

@ManagedBean(name = “lancamentoBean”)
@ViewScoped
public class LancamentoBean implements Serializable{

private static final long serialVersionUID = -8620240686179576619L;

private List<Lancamento> lista;
private List<Lancamento> listaAteHoje ;
private List<Lancamento> listaFuturos ;

private List<Double> saldos= new ArrayList<Double>();
private float saldoGeral;

private Lancamento editado = new Lancamento();

public LancamentoBean(){
	this.novo();
}

public void novo(){
	this.editado = new Lancamento();
	this.editado.setData(new Date(System.currentTimeMillis()));
}

public List<Lancamento> getListaAteHoje(){
	if(this.listaAteHoje == null){
		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		Conta conta = contextoBean.getContaAtiva();
					
		Calendar hoje = new GregorianCalendar();
		
		LancamentoRN lancamentoRN = new LancamentoRN();
		this.listaAteHoje = lancamentoRN.listar(conta, null, hoje.getTime());
	}
	return this.listaAteHoje;
}

public List<Lancamento> getListaFuturos(){
	if(this.listaFuturos == null){
		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		Conta conta = contextoBean.getContaAtiva();
		
		Calendar amanha = new GregorianCalendar();
		amanha.add(Calendar.DAY_OF_MONTH, 1);
		
		LancamentoRN lancamentoRN = new LancamentoRN();
		this.listaFuturos = lancamentoRN.listar(conta, amanha.getTime(), null);
	}
	return this.listaFuturos;
}

public void editar(){
	
}

public void salvar(){
	ContextoBean contextoBean = ContextoUtil.getContextoBean();
	this.editado.setUsuario(contextoBean.getUsuarioLogado());
	this.editado.setConta(contextoBean.getContaAtiva());
	LancamentoRN lancamentoRN = new LancamentoRN();
	lancamentoRN.salvar(this.editado);
	this.novo();
	this.lista = null;		
}

public void excluir(){
	LancamentoRN lancamentoRN = new LancamentoRN();
	this.editado = lancamentoRN.carregar(this.editado.getLancamento());
	lancamentoRN.excluir(this.editado);
	this.lista = null;
}

public List<Lancamento> getLista(){
	if(this.lista == null){
		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		Conta conta = contextoBean.getContaAtiva();
		Calendar dataSaldo = new GregorianCalendar();
		dataSaldo.add(Calendar.MONTH, -1);
		dataSaldo.add(Calendar.DAY_OF_MONTH, -1);
		
		Calendar inicio = new GregorianCalendar();
		inicio.add(Calendar.MONTH, -1);
		
		LancamentoRN lancamentoRN = new LancamentoRN();
		this.saldoGeral = lancamentoRN.saldo(conta, dataSaldo.getTime());
		this.lista = lancamentoRN.listar(conta, inicio.getTime(), null);
		
		Categoria categoria = null;
		double saldo = this.saldoGeral;
		for(Lancamento lancamento : lista){
			categoria = lancamento.getCategoria();
			saldo = saldo + (lancamento.getValor().floatValue() * categoria.getFator());
			this.saldos.add(saldo);
		}
	}
	return this.lista;
}

public List<Double> getSaldos() {
	return saldos;
}

public void setSaldos(List<Double> saldos) {
	this.saldos = saldos;
}

public float getSaldoGeral() {
	return saldoGeral;
}

public void setSaldoGeral(float saldoGeral) {
	this.saldoGeral = saldoGeral;
}

public void setLista(List<Lancamento> lista) {
	this.lista = lista;
}

public Lancamento getEditado() {
	return editado;
}

public void setEditado(Lancamento editado) {
	this.editado = editado;
}

}
[/code]

No Console do Eclipse é somente um aviso: Que o seu managedbean não é serializavél! Penso que o erro é devido a outro problema e não aquele aviso.

Oi Allan,

1 - O erro de NullPointer esta relacionado a linha 87 da sua classe LancamentoBean (tenta fazer um debug, tem alguma coisa estranha ai…)

2 - O aviso do serializável acredito que esta relacionado ao escopo do seu bean, em outras palavas, escopo de request NÃO deve implementar Serializable (apenas escopo de sessão).

Espero ter ajudado,

Roger

[quote=huogerac]Oi Allan,

1 - O erro de NullPointer esta relacionado a linha 87 da sua classe LancamentoBean (tenta fazer um debug, tem alguma coisa estranha ai…)

2 - O aviso do serializável acredito que esta relacionado ao escopo do seu bean, em outras palavas, escopo de request NÃO deve implementar Serializable (apenas escopo de sessão).

Espero ter ajudado,

Roger
[/quote]
Então huogerac a linha 87 refere-se ao metodo excluir do meu LancamentoBean - o erro ocorre no momento em que efetuo login no sistema e ele vai acessar a principal.xhtml onde tem as listas (datatable) “#{lancamentoBean.listaAteHoje}” e “#{lancamentoBean.listaFuturos}” ou seja, nesse momento não utilizo esse metodo.
No caso do ViewScoped efetuei a alteração como me recomendou mas o erro continua.

Tem mais alguma coisa que possa estar acontecendo?