ScopeType - SEAM 2.2

Boas pessoal,

Tenho o meu bean com @Scope(ScopeType.SESSION) e funciona tudo bem. Quando mudo para @Scope(ScopeType.PAGE) ele dá-me um erro num objecto. Agradecia ajuda por precisa que o escopo fosse PAGE.

Erro:

14/Mar/2013 16:12:48 com.sun.facelets.FaceletViewHandler handleRenderException SEVERE: Error Rendering View[/manterCodigosPostais.xhtml] java.io.NotSerializableException: org.ptsi.sigraweb.polaris.entity.Paridade at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at java.util.ArrayList.writeObject(ArrayList.java:570) at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at java.util.HashMap.writeObject(HashMap.java:1001) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:281) at javax.faces.render.ResponseStateManager.writeState(ResponseStateManager.java:166) at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:296) at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:258) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:620) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.utils.FastSwapFilter.doFilter(FastSwapFilter.java:66) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

Bean:

[code]
@Name(“codigoPostalBean”)
@Scope(ScopeType.PAGE)
public class CodigoPostalBean {

private CodigoPostal filtro = new CodigoPostal();

private boolean pesquisaLocalidade;

private boolean pesquisaArruamento;

private CodigoPostal codPostalSelecionado;

private CodigoPostal novoCodPostal = new CodigoPostal();

private Localidade localidadeSelecionada;

private Arruamento arruamentoSelecionado;

private Arruamento novoArrCodigo = new Arruamento();

private boolean mostraRemover = false;

private boolean mostraDetalhesLoc = false;

private boolean mostraDetalhesArr = false;

private boolean mostraCriar = false;

private boolean editarCod = false;

private boolean mostraAssociar = false;

@Out(required=false)
private ArrayList<Indicador> listaIndicadores = InterfacesListagens.listarIndicadores();

@Out(required=false)
private ArrayList<Paridade> listaParidades = InterfacesListagens.listarParidades();

@Out(required=false)
private ArrayList<Localidade> listaLocalidadesDisponiveis = new ArrayList<Localidade>();

public Arruamento getNovoArrCodigo() {
	return novoArrCodigo;
}

public void setNovoArrCodigo(Arruamento novoArrCodigo) {
	this.novoArrCodigo = novoArrCodigo;
}

public boolean isPesquisaArruamento() {
	return pesquisaArruamento;
}

public void setPesquisaArruamento(boolean pesquisaArruamento) {
	this.pesquisaArruamento = pesquisaArruamento;
}

public boolean isMostraAssociar() {
	return mostraAssociar;
}

public void setMostraAssociar(boolean mostraAssociar) {
	this.mostraAssociar = mostraAssociar;
}

public boolean isMostraCriar() {
	return mostraCriar;
}

public void setMostraCriar(boolean mostraCriar) {
	this.mostraCriar = mostraCriar;
}

public boolean isPesquisaLocalidade() {
	return pesquisaLocalidade;
}

public void setPesquisaLocalidade(boolean pesquisaLocalidade) {
	this.pesquisaLocalidade = pesquisaLocalidade;
}

public CodigoPostal getNovoCodPostal() {
	return novoCodPostal;
}

public void setNovoCodPostal(CodigoPostal novoCodPostal) {
	this.novoCodPostal = novoCodPostal;
}

public boolean isMostraRemover() {
	return mostraRemover;
}

public void setMostraRemover(boolean mostraRemover) {
	this.mostraRemover = mostraRemover;
}

public CodigoPostal getCodPostalSelecionado() {
	return codPostalSelecionado;
}

public void setCodPostalSelecionado(CodigoPostal codPostalSelecionado) {
	this.codPostalSelecionado = codPostalSelecionado;
}

public boolean isEditarCod() {
	return editarCod;
}

public void setEditarCod(boolean editarCod) {
	this.editarCod = editarCod;
}

public boolean isMostraDetalhesLoc() {
	return mostraDetalhesLoc;
}

public void setMostraDetalhesLoc(boolean mostraDetalhesLoc) {
	this.mostraDetalhesLoc = mostraDetalhesLoc;
}

public boolean isMostraDetalhesArr() {
	return mostraDetalhesArr;
}

public void setMostraDetalhesArr(boolean mostraDetalhesArr) {
	this.mostraDetalhesArr = mostraDetalhesArr;
}

public Arruamento getArruamentoSelecionado() {
	return arruamentoSelecionado;
}

public void setArruamentoSelecionado(Arruamento arruamentoSelecionado) {
	this.arruamentoSelecionado = arruamentoSelecionado;
}

public Localidade getLocalidadeSelecionada() {
	return localidadeSelecionada;
}

public void setLocalidadeSelecionada(Localidade localidadeSelecionada) {
	this.localidadeSelecionada = localidadeSelecionada;
}

public CodigoPostal getFiltro() {
	return filtro;
}

public void setFiltro(CodigoPostal filtro) {
	this.filtro = filtro;
}

@DataModelSelection
@Out(required=false)
private CodigoPostal cod;

@DataModel
private List<CodigoPostal> listaCodigos;

public List<CodigoPostal> getListaCodigos() {
	return listaCodigos;
}

public void select() {
	InterfacesListagens.verDetalhesCodPostal(cod);
	InterfacesListagens.verLocalidadesAssociadasCodPostal(cod);
	InterfacesListagens.verArruamentosAssociadosCodPostal(cod);
	cod.setReadOnly(true);
}

public String getPainel() {
	return "panelCodPostais";
}

public void pesquisar() {
	editarCod=false;
	mostraRemover=false;
	mostraAssociar=false;
	listaCodigos = InterfacesListagens.listarCodigosPostais(filtro);
	if(listaCodigos == null)
		listaCodigos = new ArrayList<CodigoPostal>();
}

public String refrescar()
{
	mostraRemover = false;
	codPostalSelecionado = null;
	mostraAssociar=false;
	pesquisar();
	return "/manterCodigosPostais.xhtml";
}

public void selecionaLocalidade(Localidade l) {
	mostraDetalhesLoc=true;
	localidadeSelecionada=l;
	InterfacesListagens.verDetalhesLocalidadesAssociadasCodPostal(cod, localidadeSelecionada);
}

public void selecionaArruamento(Arruamento arr) {
	mostraDetalhesArr=true;
	arruamentoSelecionado=arr;
	InterfacesListagens.verDetalhesArruamentosAssociadosCodPostal(cod, arruamentoSelecionado);
}

public void fechaJanelaDetArr() {
	mostraDetalhesArr=false;
}

public void fechaJanelaDetLoc() {
	mostraDetalhesLoc=false;
}

public void editarCodigo() {
	editarCod=true;
}

public void gravarCodigo() {
	for (CodigoPostal codigo : listaCodigos) {
		InterfacesListagens.editarCodPostal(codigo);
	}
	editarCod=false;
}

public void selecionaCodPostal(CodigoPostal codigoPostal) {
	InterfacesListagens.verLocalidadesAssociadasCodPostal(codigoPostal);
	InterfacesListagens.verArruamentosAssociadosCodPostal(codigoPostal);
	if (editarCod == false) {
		codPostalSelecionado = codigoPostal;
		mostraRemover = true;
	}
	mostraAssociar=false;
	
}

public void removerCodigo() {
	InterfacesListagens.removerCodPostal(codPostalSelecionado);
	pesquisar();
	mostraRemover=false;
}

public void criarCodigo() {
	InterfacesListagens.criarCodigoPostal(novoCodPostal);
	InterfacesListagens.associarLocalidadeArruamento_x_CodigoPostal(novoCodPostal, "criar");
	mostraCriar=false;
	filtro = new CodigoPostal();
	filtro.setCod1(novoCodPostal.getCod1());
	filtro.setCod2(novoCodPostal.getCod2());
	filtro.setDesignacao(novoCodPostal.getDesignacao());
	pesquisar();
}

public void abrePesquisaLocalidade() {
	if(pesquisaLocalidade==true) {
		pesquisaLocalidade=false;
	}
	else {
		pesquisaLocalidade=true;
	}
}

public void abrePesquisaArruamento() {
	if(pesquisaArruamento==true) {
		pesquisaArruamento=false;
	}
	else {
		pesquisaArruamento=true;
	}
}

/** Adiciona localidade as associadas, no Criar cod postal ou no manter */
public void selecionaLocalidadePesquisa(Localidade l) {
	if(mostraCriar==true) {
		if(!novoCodPostal.getLocalidades_associadas().contains(l)) {
			novoCodPostal.getLocalidades_associadas().add(l);
		}
	}
	else {
		boolean temNaLista = false; // Verifica se a localidade ja se encontra na lista
		for(Localidade loc : codPostalSelecionado.getLocalidades_associadas()) {
			if(loc.getCodigo().equals(l.getCodigo())) {
				temNaLista=true;
			}
		}
		if(temNaLista==false) {
			codPostalSelecionado.getLocalidades_associadas().add(l);
		}
	}
	
}

/** Remove localidade associada no caso de estarmos a criar um codigo postal */
public void removerLocAss(Localidade l) { 
	novoCodPostal.getLocalidades_associadas().remove(l);
}

/** Remove localidade associada no caso de estarmos a alterar um codigo postal ja existente */
public void removerLocAssCodExist(Localidade l) { 
	codPostalSelecionado.getLocalidades_associadas().remove(l);
}

/** Mostra ou fecha o panel de criar codigo postal */
public void mostraCriarCodPostal() { 
	novoCodPostal = new CodigoPostal();
	if(mostraCriar==true) {
		mostraCriar=false;
	}
	else {
		mostraCriar=true;
	}
}

public void mostraAssociarLocArrCod() {
	if(mostraAssociar==true) {
		mostraAssociar=false;
	}
	else {
		listaLocalidadesDisponiveis = codPostalSelecionado.getLocalidades_associadas();
		for (Localidade l : listaLocalidadesDisponiveis) {
			if(l.getCodigo().substring(4, 11).equals("0000000")) {
				l.setCodigo_abreviado(l.getCodigo().substring(0, 4));
			}
			else {
				if(l.getCodigo().substring(6, 11).equals("00000")) {
					l.setCodigo_abreviado(l.getCodigo().substring(0, 6));
				}
				else {
					l.setCodigo_abreviado(l.getCodigo().substring(0, 11));
				}
			}
		}
		mostraAssociar=true;
	}
}

public void selecionaArruamento_associacoes(Arruamento arr) {
	novoArrCodigo=arr;
}

public void validaArruamento() {
	ArrayList<Localidade> loc_associadas = codPostalSelecionado.getLocalidades_associadas();
	boolean valido = false;
	for (Localidade l : loc_associadas) {
		valido = InterfacesListagens.validarArruamento_x_CodigoPostal(novoArrCodigo, codPostalSelecionado, l).equals("S");
		if(valido) {
			break;
		}
	}
	System.out.println("valido: "+valido);
	if(valido) {
		novoArrCodigo.setIndic_cod_x_arruam_tipo_abrev(converterIndicadorDescricaoAbreviatura(novoArrCodigo.getIndic_cod_x_arruam_tipo()));
		novoArrCodigo.setConcat_abrev_pri_ind_inf(novoArrCodigo.getIndic_cod_x_arruam_tipo_abrev()+" "+novoArrCodigo.getIndic_cod_x_arruam_inf());
		novoArrCodigo.setConcat_abrev_pri_ind_sup(novoArrCodigo.getIndic_cod_x_arruam_tipo_abrev()+" "+novoArrCodigo.getIndic_cod_x_arruam_sup());
		novoArrCodigo.setParidade_cod_x_arruam_id(converterParidadeDescricaoId(novoArrCodigo.getParidade_cod_x_arruam_descricao()));
		codPostalSelecionado.getArruamentos_associados().add(novoArrCodigo);
	}
	pesquisaArruamento=false;
}

/** Remove arruamento associado no caso de estarmos a alterar um codigo postal ja existente */
public void removerArrAssCodExist(Arruamento arr) { 
	codPostalSelecionado.getArruamentos_associados().remove(arr);
}

public void gravarAssociacoesCodigo() {
	// Associa novas localidades
	// Associa novos arruamentos
	InterfacesListagens.associarLocalidadeArruamento_x_CodigoPostal(codPostalSelecionado, "gravar");
	mostraAssociar=false;
}

public String converterIndicadorDescricaoAbreviatura(String descricao) {
	if(descricao.trim()!=null) {
		for (Indicador i : listaIndicadores) {
			if(descricao.trim().equals(i.getDescricao())) {
				return i.getAbreviatura().trim();
			}
		}
		return null;
	}
	else {
		return null;
	}
}

public int converterParidadeDescricaoId(String descricao) {
	if(descricao.trim()!=null) {
		for (Paridade p : listaParidades) {
			if(descricao.trim().equals(p.getDescricao())) {
				return p.getId();
			}
		}
		return 0;
	}
	else {
		return 0;
	}
}

private String suggestion;

public String getSuggestion() {
	return suggestion;
}

public void setSuggestion(String suggestion) {
	this.suggestion = suggestion;
}

@Remove @Destroy
public void destroy()
{
}

}[/code]