ScopeType - SEAM 2.2

0 respostas
G

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:
@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()
	{
	}
}
Criado 14 de março de 2013
Respostas 0
Participantes 1